從本機電腦取得資料

雖然 Windows 遠端系統管理和WS-Management通訊協定是專為遠端通訊所設計,但在本機電腦上建立會話是最簡單的案例。 某些腳本可能需要存取本機電腦和遠端電腦上的資料。

**WinRM 2.0 版:**

所有作業都會被視為遠端作業,而且必須在執行任何作業之前啟動 WinRM 服務。 如果未指定遠端目的地,則預設會使用 localhost,並將所有作業傳送至本機 WinRM 服務。 如需啟動 WinRM 服務的詳細資訊,請參閱 Windows 遠端系統管理的安裝和設定。

針對本機作業使用 WinRM 服務時,應考慮下列因素:

  • 本機 WinRM 設定只能由系統管理員讀取。
  • WMI 命名空間必須設定遠端啟用許可權。 如需詳細資訊,請參閱 保護遠端 WMI 連線
  • 如果未建立 WinRM 接聽程式 ,則 WinRM 服務會接聽埠 47001 上的本機要求。

每個 WinRM 腳本都必須從建立會話或電腦連線開始,方法是建立 Session 物件。 建立會話之後,您可以使用 Session 物件方法,例如 Session.EnumerateSession.Invoke 來取得資料或執行方法。

建立會話與 連線 到 Windows Management Instrumentation (WMI) 命名空間有點類似。 會話基本上是一層,可讓您透過 SOAP 訊息和WS-Management通訊協定來傳送和接收資料。 如需詳細資訊,請參閱 WS 管理通訊協定

呼叫 WSMan.CreateSession 方法來建立 Session 物件將會啟動連線到本機 WinRM 的 會話

建立 WSMan 會話並取得資料

  1. 建立 WSMan 物件。

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. 呼叫 WSMan.CreateSession 方法來建立會話。 此會話會在您的登入使用者名稱和密碼下執行,並可透過本機 WinRM 取得資料。

    Set objSession = objWsman.CreateSession()
    
  3. 建立資源 URI識別您想要管理 的資源,或您想要取得資料的資源。 如需格式化 URI 的詳細資訊,請參閱 資源 URI。 此資源 URI 適用于 WMI Win32_Service 類別的特定實例 Winmgmt 服務。 如需詳細資訊,請參閱 Windows 遠端系統管理和 WMI

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
    
  4. 呼叫 使用 資源 URI 取得或列舉資料的會話方法。 如需詳細資訊,請參閱 WinRM 腳本 API

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. 若要從另一部電腦取得或管理資料,或使用不同的驗證方法,請參閱 從遠端電腦取得資料

下列 VBScript 程式碼範例顯示取得 WMI Win32_Service 名為 「Winmgmt」 之特定實例的完整腳本。

Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Wscript.Echo strResponse

下列 VBScript 程式碼範例顯示具有資料轉換的完整腳本。 如需詳細資訊,請參閱 顯示 WinRM 腳本的 XML 輸出

Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strResponse)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)

關於 Windows 遠端系統管理

使用 Windows 遠端系統管理

Windows 遠端系統管理參考