Invoke-Command in PowerShell: Remote-Befehle effizient ausführen

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"
Invoke-Command in PowerShell ausführen
Invoke-Command in PowerShell ausführen

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.

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux-Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte. Unterstütze das Blog mit einer Spende!


 KI-Tool in der Windows PowerShell verwenden. Warum jeder IT-Admin heute KI kennen sollte.
Dieses und noch weitere kostenlose E-Books

(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

KI-Tools in der Windows PowerShell

Warum jeder IT-Admin heute KI kennen sollte 

Kostenloses E-Book zum Thema PowerShell und KI mit Copilot, ChatGPT, u.v.m

Ebook - 10 Schritte nach der Windows Installation
Close the CTA

Zusätzlich erhältst du noch viele weitere Materialien u.a. für: Windows Windows 11, Windows Server, Docker, PowerShell Referenzen, Batch, Linux Terminal, 

u.v.m.