Der Befehl Invoke-Command in PowerShell ist ein leistungsstarkes Tool, mit dem du Skripte oder Befehle auf entfernten Computern ausführen kannst.
Gerade in IT-Umgebungen, in denen du mehrere Systeme verwalten musst, hilft dir dieser Befehl, Prozesse zu automatisieren und effizient zu steuern.
Wofür wird Invoke-Command in PowerShell verwendet?
Mit Invoke-Command kannst du:
- Befehle auf einem oder mehreren entfernten Systemen gleichzeitig ausführen
- Lokale Skripte auf Remote-Computern ausführen
- Daten von entfernten Maschinen abrufen
- Parallele Ausführungen durchführen, um Zeit zu sparen
Wichtige Voraussetzungen
Bevor du Invoke-Command nutzen kannst, musst du sicherstellen, dass PowerShell Remoting aktiviert ist. Die Aktivierung kannst du ebenso direkt in der Windows PowerShell vornehmen. Wichtig dabei ist natürlich, dass du die nötigen Berechtigungen besitzt.
Enable-PSRemoting -Force
Außerdem müssen die Firewalleinstellungen entsprechend konfiguriert sein. Sollte die Remoteverbindung nicht funktionieren, so ist es u. a. sinnvoll, auch die Firewall-Einstellungen zu überprüfen.
Grundlegende Syntax und praktische Beispiele
Die Basisstruktur des Befehls hat dabei die folgende Syntax:
Invoke-Command -ComputerName "Remote-PC" -ScriptBlock \{ Get-Service }
Einfache Befehlsausführung auf einem Remote-Computer.
Falls du wissen möchtest, welcher Benutzer aktuell auf einem entfernten Rechner angemeldet ist, kannst du Folgendes ausführen:
Invoke-Command -ComputerName "Remote-PC" -ScriptBlock \{ whoami }
Mehrere Computer gleichzeitig ansprechen
Falls du einen Befehl auf mehreren Systemen ausführen willst, kannst du mehrere Computernamen übergeben:
Invoke-Command -ComputerName "PC1", "PC2", "PC3" -ScriptBlock \{ Get-Service }
Hier werden die laufenden Dienste von drei Rechnern gleichzeitig abgefragt.
Lokale Skripte auf entfernten Computern ausführen
Hast du ein Skript, das du remote ausführen willst, kannst du es mit -FilePath angeben:
Invoke-Command -ComputerName "Remote-PC" -FilePath "C:\Scripts\meinSkript.ps1"

Code mit Variablen übergeben
Falls du Variablen in dein ScriptBlock integrieren möchtest, kannst du Using verwenden:
$serviceName = "wuauserv"
Invoke-Command -ComputerName "Remote-PC" -ScriptBlock \{
Get-Service -Name $Using:serviceName
}
So kannst du die Variable $serviceName an das Remote-System übergeben.
Fazit
Invoke-Command in PowerShell ist ein essenzielles PowerShell-Tool für IT-Administratoren, um Remote-Tasks effizient zu verwalten.
Ob für Wartung, Monitoring oder Automatisierung – mit diesem Befehl kannst du viele Systeme gleichzeitig steuern und wertvolle Zeit sparen. Natürlich kannst du auch für sämtliche Remoteverwaltung Drittanbieterprogramme verwenden. Hierfür gibt es z. B. AnyDesk oder TeamViewer.









