從遠端電腦取得數據
您可以取得數據或管理遠端電腦上的資源,以及本機電腦。 連線至 Windows 遠端管理腳本中的遠端電腦與建立本機連線非常相似。 WMI 實例數據可供使用,而且如果遠端電腦具有 BMC 硬體,可以使用 WS-Management 通訊協定進行通訊,則也可以使用 Intelligent Platform Management Interface (IPMI) 數據。 如需詳細資訊,請參閱 Windows 遠端管理和 WMI 和 遠端硬體管理。
您可能需要建立 ConnectionOptions 物件,以指定登入要求之驗證類型的相關信息。
如果遠端電腦上的帳戶具有相同的登入使用者名稱和密碼,您唯一需要的額外資訊就是通訊協定、網域名稱和電腦名稱。 由於 使用者帳戶控制(UAC),遠端帳戶必須是網域帳戶,且是遠端電腦管理員(Administrators)群組的成員。 如果帳戶是 Administrators 使用者群組的本機電腦成員,則 UAC 不允許存取 WinRM 服務。 若要存取工作組中的遠端 WinRM 服務,必須建立下列 DWORD 登錄專案並將其值設定為 1:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] LocalAccountTokenFilterPolicy來停用本機帳戶的 UAC 篩選。
使用登入使用者名稱和密碼連線到遠端電腦
指定具有完整功能變數名稱或IP位址的目標計算機,並將此指派給常數。 如果指定了 IPv6 位址,則必須以方括弧括住位址。
Const RemoteComputer = "ComputerName.domain.com"
建立 WSMan 物件。
Set objWsman = CreateObject("WSMan.Automation")
建立會話、指定傳輸、HTTP 或 HTTPS,並與代表目標電腦的常數串連。
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
下列 VBScript 程式代碼範例會顯示完整的腳本。 腳本包含子程式,可將數據從原始 XML 轉換成人類可讀取的形式。 如需詳細資訊,請參閱 從 WinRM 腳本顯示 XML 輸出。
Const RemoteComputer = "ComputerName.domain.com"
Set objWsman = CreateObject("WSMan.Automation")
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
"wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)
While Not objResponse.AtEndOfStream
DisplayOutput(objResponse.ReadItem)
Wend
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Dim xmlFile, xslFile
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
以不同帳號連線至遠端電腦
指定具有完整限定的網域名稱或 IP 位址的目標電腦,並將其指定給一個常數。 如果指定了 IPv6 位址,則必須以方括弧括住位址。
Const RemoteComputer = "ComputerName.domain.com"
建立 WSMan 物件。
Set objWsman = CreateObject("Wsman.Automation")
呼叫 WSMan.CreateConnectionOptions 方法來建立 ConnectionOptions 物件。 遠端電腦上的帳戶必須是本機計算機系統管理員群組的成員。
Set objConnectionOptions = objWsman.CreateConnectionOptions objConnectionOptions.UserName = "Username" objConnectionOptions.Password = "Password"
在 WSman.CreateSession 呼叫中,於 旗標 參數指定適當的會話連線旗標。 如需詳細資訊,請參閱 工作階段常數。 請使用完整的電腦名稱或 IP 位址以及 HTTP 或 HTTPS 協議來指定目標電腦。 此腳本會向遠端 WinRM 服務要求 Kerberos 驗證。
不同於 WMI 命令稿,您可以在 WinRM 腳本中使用數種驗證方法。 如需詳細資訊,請參閱 遠端連線的驗證。
iFlags = objWsman.SessionFlagUseKerberos Or _ objWsman.SessionFlagCredUserNamePassword Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _ iFlags, objConnectionOptions)
會話物件可用之後,您可以呼叫任何 Session 物件方法,以取得資源的數據。 您可以取得在會話執行的電腦上可用的任何資源的資料。 如需詳細資訊,請參閱 從本機計算機取得數據。
下列 VBScript 程式代碼範例會顯示完整的腳本。 腳本包含子程式,可將數據從原始 XML 轉換成人類可讀取的形式。 如需詳細資訊,請參閱 從 WinRM 腳本顯示 XML 輸出。 腳本會指定 Kerberos 驗證,但如果遠端電腦位於工作組而非網域中,則指定 Kerberos 會產生錯誤。
Const RemoteComputer = "ComputerName.domain.com"
Set objWsman = CreateObject("Wsman.Automation")
Set objConnectionOptions = objWsman.CreateConnectionOptions
objConnectionOptions.UserName = "Username"
objConnectionOptions.Password = "Password"
iFlags = objWsman.SessionFlagUseKerberos Or _
objWsman.SessionFlagCredUserNamePassword
Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
iFlags, objConnectionOptions)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
"wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)
While Not objResponse.AtEndOfStream
DisplayOutput(objResponse.ReadItem)
Wend
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Dim xmlFile, xslFile
Set xmlFile = CreateObject("MSXml2.DOMDocument.3.0")
Set xslFile = CreateObject("MSXml2.DOMDocument.3.0")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
相關主題