PowerShell remote ausführen

Für das Einschalten von PowerShell-Remoting gibt es ein praktisches CmdletViele PowerShell-Cmdlets funktionieren nicht nur auf dem lokalen Rechner, sondern auch remote auf entfernten PCs. Dabei gibt es zwei Arten: Ein Teil der Cmdlets benötigt PowerShell-Remoting, das heißt der entfernte Rechner muss für das Ausführen von PowerShell-Remotebefehlen konfiguriert sein. Andere, wie etwa Stop-Computer zum Herunterfahren funktionieren auch ohne diese Voraussetzung, weil sie andere Mechanismen verwenden, zum Beispiel WMI.

Welche Cmdlets funktionieren remote

Um herauszubekommen, welche Cmdlets remote anwendbar sind, ermittelt man mittels der PowerShell-Hilfe, für welche es den Parameter -ComputerName gibt. Die Liste enthält sowohl die Cmdlets, die PowerShell-Remoting benötigen, als auch die anderen. Für ein konkretes Cmdlet kann man per

Get-Help ‹Cmdlet› -Parameter RemoteComputer

erfahren, ob dies der Fall ist. Eine TechNet-Zusammenstellung führt folgende Cmdlets auf, die kein PowerShell-Remoting erfordern:

Get-WinEvent 
Get-Counter 
Get-EventLog 
Clear-EventLog 
Write-EventLog 
Limit-EventLog 
Show-EventLog 
New-EventLog 
Remove-EventLog 
Get-WmiObject 
Get-Process 
Get-Service 
Set-Service 
Get-HotFix 
Restart-Computer 
Stop-Computer 
Add-Computer 
Remove-Computer 
Rename-Computer 
Reset-ComputerMachinePassword

PowerShell-Remoting einschalten

Für das Einschalten von PowerShell-Remoting gibt es ein praktisches CmdletFür alle anderen Remote-Befehle mit PowerShell muss man PowerShell-Remoting auf dem Zielrechner jeweils explizit einschalten. Dafür gibt es eine praktische Abkürzung: Man startet auf ihm eine PowerShell mit Administratorrechten und führt darin das Cmdlet

Enable-PSRemoting –force

aus. Es startet den WinRM-Dienst, setzt seinen Status auf „Automatisch“ und setzt die benötigte Ausnahme in der Firewall. Innerhalb vom Domänen ist nicht mehr erforderlich. Auf Arbeitsgruppenrechnern oder über Domänengrenzen hinweg muss man auf dem lokalen Rechner festlegen, welche Remote-Computer, mit denen man sich per PowerShell verbinden will, vertrauenswürdig genug sind, die entsprechenden Autorisierungsdaten zu empfangen. Dazu benötigt man winrm.cmd innerhalb einer Eingabeaufforderung mit Administratorrechten. Hier fügt man den gewünschten Server per

winrm set winrm/config/client @{TrustedHosts="‹RemoteComputer›"}

der Liste vertrauenswürdiger Hosts hinzu. Der Remote-Computer muss dazu bereits konfiguriert sein; das Kommando prüft die Verbindung zum WinRM-Dienst, bevor es den Host in die Liste einträgt.

1 Kommentar

Bild von Andreas Dufour
Andreas Dufour (Besucher) sagt:

Hallo Herr Kroschel,

ich suche nach einer Lösung Computer remote mit Hilfe der Powershell in eine Domäne aufzunehmen. Daher bin ich auf Ihren Artikel aufmerksam geworden. Leider musste ich feststellen, dass der Parameter -Computername in dem cmdlet "Add-Computer" nicht funktioniert, bzw. nicht existiert (oder ich habe etwas falsche gemacht). Das cmdlet Rename-Computer gibt es in Windows 7 / 2008 R2 RTM nicht mehr. Es wurde entfernt nachdem die Dokumentation zur Powershell fertiggestellt wurde.
Ich habe hier einen Link dazu gefunden: http://www.shariqsheikh.com/blog/index.php/200909/add-computer-cmdlet-wo...

Viele Grüße

Andreas Dufour

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt. Wenn mit der von Ihren angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen