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.

    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 sagt:
    4. Dezember 2010 - 20:17

    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