Udostępnij za pośrednictwem


Uzyskiwanie danych z komputera lokalnego

Mimo że zdalne zarządzanie systemem Windows i protokół WS-Management są jawnie przeznaczone do komunikacji zdalnej, ustanowienie sesji na komputerze lokalnym jest najprostszym przypadkiem. Niektóre skrypty mogą wymagać dostępu do danych na komputerze lokalnym, a także na komputerach zdalnych.

WinRM w wersji 2.0:

Wszystkie operacje są uznawane za zdalne, a usługa WinRM musi zostać uruchomiona przed wykonaniem jakiejkolwiek operacji. Jeśli nie określono lokalizacji docelowej zdalnej, host lokalny jest używany domyślnie, a wszystkie operacje zostaną wysłane do lokalnej usługi WinRM. Aby uzyskać więcej informacji na temat uruchamiania usługi WinRM, zobacz Instalacja i konfiguracja zarządzania zdalnego systemu Windows.

W przypadku korzystania z usługi WinRM dla operacji lokalnych należy wziąć pod uwagę następujące czynniki:

  • Lokalna konfiguracja usługi WinRM może być odczytywana tylko przez administratorów.
  • Przestrzenie nazw usługi WMI muszą mieć przyznane uprawnienia umożliwienia zdalnego dostępu. Aby uzyskać więcej informacji, zobacz Zabezpieczanie zdalnego połączenia WMI.
  • Jeśli nie zostanie utworzony odbiornik dla usługi WinRM, wtedy usługa WinRM nasłuchuje żądań lokalnych na porcie 47001.

Każdy skrypt usługi WinRM musi rozpoczynać się od ustanowienia sesji lub połączenia z komputerem poprzez utworzenie obiektu Session. Po utworzeniu sesji można użyć metod obiektu Sesja, takich jak Sesja.Enumerate lub Sesja.Invoke, aby uzyskać dane lub wykonać metody.

Tworzenie sesji jest nieco podobne do łączenia z przestrzenią nazw Windows Management Instrumentation (WMI). Sesja jest zasadniczo warstwą, która umożliwia wysyłanie i odbieranie danych za pośrednictwem komunikatów protokołu SOAP i protokołu WS-Management. Aby uzyskać więcej informacji, zobacz WS-Management Protocol.

Wywołanie metody WSMan.CreateSession w celu utworzenia obiektu sesji spowoduje uruchomienie sesji , który połączy się z lokalnym WinRM.

Aby utworzyć sesję programu WSMan i uzyskać dane

  1. Utwórz obiekt WSMan.

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Utwórz sesję, wywołując metodę WSMan.CreateSession. Ta sesja działa na koncie użytkownika i jego hasła logowania i może uzyskiwać dane za pośrednictwem lokalnego systemu WinRM.

    Set objSession = objWsman.CreateSession()
    
  3. Utwórz zasobu identyfikatora URI, aby zidentyfikować zasób , którym chcesz zarządzać lub dla którego chcesz uzyskać dane. Aby uzyskać więcej informacji na temat formatowania URI, zobacz URI zasobu. Ten identyfikator URI zasobu jest przeznaczony dla określonego wystąpienia klasy WMI Win32_Service, usługi Winmgmt. Aby uzyskać więcej informacji, zobacz Windows Remote Management and WMI.

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
    
  4. Wywołaj w sesjimetody, które przy użyciu identyfikatora URI zasobu pobierają lub wyliczają dane. Aby uzyskać dodatkowe informacje, zobacz Interfejs API skryptów usługi WinRM.

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. Aby uzyskać dane z innego komputera lub zarządzać nimi lub użyć różnych metod uwierzytelniania, zobacz Uzyskiwanie danych z komputera zdalnego.

Poniższy przykład kodu VBScript przedstawia kompletny skrypt, który uzyskuje określone wystąpienie usługi WMI Win32_Service o nazwie "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

Poniższy przykład kodu VBScript przedstawia kompletny skrypt z przekształceniem danych. Aby uzyskać więcej informacji, zobacz Wyświetlanie danych wyjściowych XML ze skryptów usługi WinRM.

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)

O zdalnym zarządzaniu systemem Windows

Korzystanie z zdalnego zarządzania systemem Windows

Referencja dotycząca zdalnego zarządzania systemem Windows