それが実際に使用しているコードである場合、最初はこの行でエラーが発生している可能性があります。
For Each Domain In TheTDConnection.DomainsList
コードの残りの部分に基づいて、「TheTDConnection」は「tdc」である必要があります。
For Each Domain In tdc.DomainsList
ああ、これを行うには、サーバーに接続するだけでなく、まずtdc.Login...を呼び出してログインする必要があります。
関連する注意事項として、DomainsListプロパティは非推奨です。GetAllVisibleProjectDescriptors によって返されるProjectDescriptorオブジェクトのリストをループするだけでよいと思います。これは、現在ログオンしているユーザーがアクセスできるすべてのドメインのすべてのプロジェクトをカバーするためです。
編集:これは、元の質問に基づく完全なソリューションです。これは、提供されたユーザーがアクセスできるドメイン/プロジェクトを循環するテスト済みのコードです。これは、QC/ALM Connectivity アドインがインストールされていることを前提としています (必須)。
この VBScript を 64 ビット マシンで実行している場合は、32 ビット バージョンの wscript.exe を使用して実行する必要があります。C:\Windows\SysWOW64\wscript.exe "c:\somewhere\myscript.vbs"
msgbox "Creating connection object"
Dim tdc
Set tdc = CreateObject("TDApiOle80.TDConnection")
msgbox "Connecting to QC/ALM"
tdc.InitConnectionEx "http://<yourServer>/qcbin/"
msgbox "Logging in"
tdc.Login "<username>", "<password>"
Dim projDesc
msgbox "Getting project descriptors"
Set projectDescriptors = tdc.GetAllVisibleProjectDescriptors
For Each desc In projectDescriptors
msgbox desc.DomainName & "\" & desc.Name
Next
msgbox "Logging out"
tdc.Logout
msgbox "Disconnecting"
tdc.Disconnect
msgbox "Releasing connection"
tdc.ReleaseConnection
編集2:
sa.GetAllDomains からの結果の XML を解析して、サーバー上のすべての domain\project アイテムのリストにする場合は、これを行うことができます (元の質問とタグでまだ言及されており、テスト済みであるため、これは VBScript です):
Set objDoc = CreateObject("MSXML.DOMDocument")
objDoc.Load "C:\yourXmlFile.xml"
Set objRoot = objDoc.documentElement
For Each domain in objRoot.selectNodes("TDXItem")
For Each project in domain.selectNodes("PROJECTS_LIST/TDXItem")
msgbox domain.selectSingleNode("DOMAIN_NAME").text & "\" & project.selectSingleNode("PROJECT_NAME").text
Next
Next