Tags: PowerShell, Remote-Verwaltung
Während Powershell 2.0 zum Lieferumfang von Windows 7 und Server 2008 R2 gehört, muss man sie in älteren Versionen des Betriebssystems nachträglich installieren und konfigurieren. Die Anpassungen betreffen vor allem die gegenüber PowerShell 1.0 stark erweiterten Remoting-Funktionen, die mit dem Parameter -computer eine Ausführung zahlreicher Cmdlets auf entfernten Rechnern ermöglichen.
Microsoft bietet Powershell 2.0 für XP, Vista und andere nicht mehr aktuelle Versionen von Windows als Teil des Windows Management Framework an. Wer nur nach Powershell 2.0 sucht, soll sich davon nicht verwirren lassen, dass es dafür keinen eigenständigen Download gibt. Das Paket enthält neben der Shell auch WinRM 2.0 sowie BITS 4.0. Das Kernpaket des Management Frameworks kommt ohne BITS aus. Um es unter Windows XP zu installieren, wird das SP3 sowie das .NET-Framework 2.0 oder höher vorausgesetzt.
WinRM konfigurieren
Um die Remote-Management-Fähigkeiten von Powershell 2.0 in Anspruch nehmen zu können, muss man jeden Rechner, der über das Netz verwaltet werden soll, entsprechend konfigurieren. Der erste Schritt besteht darin, dass WinRM eingerichtet wird. Über den Powershell-Befehl
get-service winrm
kann man den Status des Dienstes Windows Remote Management erfragen. Sein Starttyp ist per Voreinstellung manuell, so dass er nicht läuft, wenn er noch nicht konfiguriert wurde. Um WinRM für die Nutzung vorzubereiten, führt man in einer Eingabeaufforderung mit administrativen Rechten das Kommando
winrm quickconfig
aus. Es ändert den Starttyp auf automatisch, erzeugt einen Listener, der auf Anfragen anderer Rechner antwortet, und erstellt für WinRM eine Ausnahme in der Firewall. Es ist übrigens kein Problem, wenn der Dienst bereits konfiguriert ist und dieser Befehl nochmals ausgeführt wird. Er erkennt eine vorhandene Konfiguration und überschreibt keine Einstellungen. Das Powershell-Cmdlet Enable-PSRemoting erfüllt den gleichen Zweck wir winrm quickconfig, kann aber an unkonfigurierten System scheitern und in der Fehlermeldung den Aufruf von winrm empfehlen.
Remote-PC muss unter Umständen in Liste der Trusted Hosts
Bevor man eine Remote-Session aufbaut, kann es notwendig sein, das Zielsystem auf dem Quellrechner in die Liste der Trusted Hosts aufzunehmen. Dies ist dann erforderlich, wenn sich die PCs innerhalb einer Workgroup befinden oder in einer Domäne über die IP-Adresse angesprochen werden. Die Aufnahme in diese Liste erfolgt beispielsweise mittels
winrm set winrm/config/client '@{TrustedHosts="192.168.0.27"}'
Zu beachten ist dabei, dass sich immer nur die gesamte Liste auf diese Weise schreiben lässt, das Hinzufügen oder das Löschen einzelner Einträge ist nicht möglich. Sollen mehrere Trusted Hosts erlaubt werden, dann kann man ihre Namen oder IP-Adressen mittels Komma voneinander trennen.
Interaktive Session auf Remote-PC starten
Um über Powershell schließlich eine interaktive Session auf einem Remote-PC zu starten, verwendet man das Cmdlet
Enter-PSSession -computer [Computer-Name]
Wenn die Ausführung des Befehls erfolgreich ist, ändert sich der Powershell-Prompt, indem er den Namen und das aktuelle Verzeichnis des entfernten Rechners darstellt. Alle folgenden Befehle werden nun auf dem Remote-PC ausgeführt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- ThinPrint 13 unterstützt Microsofts V4-Druckertreiber und MMC
- PowerShell 7.3: JEA über SSH, Cmdlet für Setup, erweiterte ARM-Unterstützung
- Second-Hop-Problem: CredSSP für PowerShell-Remoting konfigurieren
- Drucker (remote) über PowerShell installieren
- PowerShell für Exchange auf Workstation installieren
Weitere Links