Abrufen von Daten vom lokalen Computer

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

**WinRM Version 2.0: **

Alle Vorgänge werden als Remote betrachtet, und der WinRM-Dienst muss gestartet werden, bevor ein Vorgang ausgeführt wird. Wenn ein Remoteziel nicht angegeben wird, wird der localhost standardmäßig 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 Windows Remoteverwaltung.

Wenn Sie den WinRM-Dienst für lokale Vorgänge verwenden, sollten die folgenden Faktoren berücksichtigt werden:

  • Die lokale WinRM-Konfiguration kann nur von Administratoren gelesen werden.
  • WMI-Namespaces müssen Remoteberechtigungen festlegen. Weitere Informationen finden Sie unter Sichern einer Remote-WMI-Verbindung.
  • Wenn ein WinRM-Listener nicht erstellt wird, lauscht der WinRM-Dienst auf lokale Anforderungen an Port 47001.

Jedes WinRM-Skript muss beginnen, indem eine Sitzung oder Verbindung mit einem Computer hergestellt wird, indem ein Sitzungsobjekt 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 etwas der Verbindung mit einem Windows Management Instrumentation (WMI)-Namespace. 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 im WS-Management Protocol.

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

So erstellen Sie eine WSMan-Sitzung und erhalten Sie Daten

  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 Anmeldenamen und Kennwort ausgeführt und kann Daten über das lokale WinRM abrufen.

    Set objSession = objWsman.CreateSession()
    
  3. Erstellen Sie einen Ressourcen-URI , um die Ressource zu identifizieren, die Sie verwalten 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 eine bestimmte Instanz der WMI-Win32_Service-Klasse , dem Winmgmt-Dienst. 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. Aufrufen von Sitzungsmethoden , die Daten mithilfe des Ressourcen-URI abrufen oder aufzählen. Weitere Informationen finden Sie unter WinRM Scripting API.

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. Informationen zum Abrufen oder Verwalten von Daten aus einem anderen Computer oder verwenden verschiedene Methoden der Authentifizierung finden Sie unter Abrufen von Daten aus einem Remotecomputer.

Das folgende VBScript-Codebeispiel zeigt das vollständige Skript, das die bestimmte Instanz des 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 zu Windows Remoteverwaltung

Verwenden Windows Remoteverwaltung

Windows Remoteverwaltungsreferenz