共用方式為


從本機計算機取得數據

雖然 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-Management 通訊協定

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

建立 WSMan(Windows 遠端管理)會話並取得資料

  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 程式代碼範例顯示完整的腳本,可取得名為 “Winmgmt” 之 WMI Win32_Service 的特定實例。

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 遠端管理參考