從遠端電腦取得資料

您可以取得資料或管理遠端電腦上的資源,以及本機電腦。 在 Windows 遠端系統管理腳本中連線到遠端電腦非常類似于建立本機連線。 WMI 實例資料可供使用,而且如果遠端電腦有 BMC 硬體可以使用WS-Management通訊協定進行通訊,則也可以使用 智慧型平臺管理介面 (IPMI) 資料。 如需詳細資訊,請參閱 Windows 遠端系統管理和 WMI遠端硬體管理

您可能需要建立 ConnectionOptions 物件,以指定登入要求之驗證類型的相關資訊。

如果遠端電腦上的帳戶具有相同的登入使用者名稱和密碼,您唯一所需的額外資訊就是傳輸、功能變數名稱和電腦名稱稱。 由於 使用者帳戶控制 (UAC) ,因此遠端帳戶必須是網域帳戶和遠端電腦系統管理員群組的成員。 如果帳戶是 Administrators 群組的本機電腦成員,則 UAC 不允許存取 WinRM 服務。 若要存取工作組中的遠端 WinRM 服務,必須藉由建立下列 DWORD 登錄專案並將其值設定為 1: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] LocalAccountTokenFilterPolicy來停用本機帳戶的 UAC 篩選。

若要使用登入使用者名稱和密碼連線到遠端電腦

  1. 指定具有完整功能變數名稱或 IP 位址的目的電腦,並將此值指派給常數。 如果指定 IPv6 位址,則位址必須以方括弧括住。

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. 建立 WSMan 物件。

    Set objWsman = CreateObject("WSMan.Automation")
    
  3. 建立會話、指定傳輸、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

使用不同帳戶連線到遠端電腦

  1. 指定具有完整功能變數名稱或 IP 位址的目的電腦,並將此值指派給常數。 如果指定 IPv6 位址,則位址必須以方括弧括住。

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. 建立 WSMan 物件。

    Set objWsman = CreateObject("Wsman.Automation")
    
    
  3. 呼叫 WSMan.CreateConnectionOptions 方法來建立 ConnectionOptions 物件。 遠端電腦上的帳戶必須是本機電腦系統管理員群組的成員。

    Set objConnectionOptions = objWsman.CreateConnectionOptions
    objConnectionOptions.UserName = "Username"
    objConnectionOptions.Password = "Password"
    
  4. WSman.CreateSession 呼叫上,在 flags 參數中指定適當的會話連接旗標。 如需詳細資訊,請參閱 會話常數。 使用完整電腦名稱稱或 IP 位址和傳輸來指定目的電腦,也就是 HTTP 或 HTTPs。 此腳本會向遠端 WinRM 服務要求 Kerberos 驗證。

    不同于 WMI 腳本,您可以在 WinRM 腳本中使用數種驗證方法。 如需詳細資訊,請參閱 遠端連線的驗證

    iFlags = objWsman.SessionFlagUseKerberos Or _
      objWsman.SessionFlagCredUserNamePassword
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
      iFlags, objConnectionOptions)
    
  5. 會話物件可用之後,您可以呼叫任何 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

關於 Windows 遠端系統管理

使用 Windows 遠端系統管理

Windows 遠端系統管理參考