Tags: System-Management, PowerShell
Viele 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 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.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Programme (remote) mit PowerShell deinstallieren
- Geplante Aufgaben auf andere Rechner übertragen mit PowerShell
- Register-ScheduledTask: Geplante Aufgaben erstellen mit PowerShell
- Aufgaben automatisieren mit Version 2 von AppSphere ScriptRunner 2016
- Rollen und Features von Windows Server klonen mit PowerShell
Weitere Links
1 Kommentar
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