Freigeben über


Abrufen von Daten vom lokalen Computer

Obwohl die Windows-Remoteverwaltung und das WS-Management-Protokoll explizit für die Remotekommunikation konzipiert sind, ist das Einrichten einer Sitzung auf dem lokalen Computer der einfachste Fall. Einige Skripts erfordern möglicherweise Zugriff auf Daten auf dem lokalen Computer sowie auf Remotecomputern.

**WinRM Version 2.0: **

Alle Vorgänge werden als Remotevorgänge betrachtet, und der WinRM-Dienst muss gestartet werden, bevor ein Vorgang ausgeführt wird. Wenn kein Remoteziel angegeben wird, wird standardmäßig der localhost verwendet, und alle Vorgänge werden an den lokalen WinRM-Dienst gesendet. Weitere Informationen zum Starten des WinRM-Diensts finden Sie unter Installation und Konfiguration für die Windows-Remoteverwaltung.

Bei der Verwendung des WinRM-Diensts für lokale Vorgänge sollten die folgenden Faktoren berücksichtigt werden:

  • Die lokale WinRM-Konfiguration kann nur von Administratoren gelesen werden.
  • Für WMI-Namespaces müssen Remote-Aktivierungsberechtigungen festgelegt sein. Weitere Informationen finden Sie unter Sichern einer WMI-Remoteverbindung.
  • Wenn kein WinRM-Listener erstellt wird, lauscht der WinRM-Dienst auf lokale Anforderungen an Port 47001.

Jedes WinRM-Skript muss zunächst eine Sitzung oder Verbindung mit einem Computer herstellen, indem ein Session-Objekt erstellt wird. Nachdem die Sitzung erstellt wurde, können Sie die Session-Objektmethoden wie Session.Enumerate oder Session.Invoke verwenden, um Daten abzurufen oder Methoden auszuführen.

Die Erstellung einer Sitzung ähnelt dem Herstellen einer Verbindung mit einem WMI-Namespace (Windows Management Instrumentation). Die Sitzung ist im Wesentlichen eine Ebene, mit der Sie Daten über SOAP-Nachrichten und das WS-Management-Protokoll senden und empfangen können. Weitere Informationen finden Sie unter WS-Management Protocol.

Durch Aufrufen der WSMan.CreateSession-Methode zum Erstellen eines Session-Objekts wird eine Sitzung gestartet, die eine Verbindung mit dem lokalen WinRM herstellt.

So erstellen Sie eine WSMan-Sitzung und rufen Daten ab

  1. Erstellen Sie ein WSMan-Objekt .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Erstellen Sie eine Sitzung, indem Sie die WSMan.CreateSession-Methode aufrufen. Diese Sitzung wird unter Ihrem Anmeldebenutzernamen und Kennwort ausgeführt und kann Daten über die lokale WinRM-Instanz abrufen.

    Set objSession = objWsman.CreateSession()
    
  3. Erstellen Sie einen Ressourcen-URI , um die Ressource zu identifizieren , die Sie verwalten möchten oder für die Sie Daten abrufen möchten. Weitere Informationen zum Formatieren eines URI finden Sie unter Ressourcen-URIs. Dieser Ressourcen-URI ist für einen bestimmten instance der WMI-Win32_Service-Klasse, dem Winmgmt-Dienst, bestimmt. Weitere Informationen finden Sie unter Windows-Remoteverwaltung und WMI.

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
    
  4. Rufen Sie Sitzungsmethoden auf, die Daten mithilfe des Ressourcen-URI abrufen oder aufzählen. Weitere Informationen finden Sie unter WinRM-Skript-API.

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. Informationen zum Abrufen oder Verwalten von Daten von einem anderen Computer oder zum Verwenden verschiedener Authentifizierungsmethoden finden Sie unter Abrufen von Daten von einem Remotecomputer.

Das folgende VBScript-Codebeispiel zeigt das vollständige Skript, das die spezifische instance der WMI-Win32_Service namens "Winmgmt" abruft.

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

Das folgende VBScript-Codebeispiel zeigt das vollständige Skript mit der Datentransformation. Weitere Informationen finden Sie unter Anzeigen der XML-Ausgabe von WinRM-Skripts.

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)

Informationen zur Windows-Remoteverwaltung

Verwenden der Windows-Remoteverwaltung

Windows-Remoteverwaltungsreferenz