Enable-PSRemoting ·
Enter-PSSession ·
Invoke-Command ·
New-PSSession ·
TrustedHosts
PowerShell Remoting ermöglicht die Ausführung von Befehlen auf entfernten Computern – interaktiv oder als Skript. Diese Cmdlets sind unverzichtbar für die Verwaltung von Server-Farmen und verteilten Systemen.
Enable-PSRemoting aktiviert PowerShell Remoting auf einem Computer. Dies umfasst das Starten des WinRM-Dienstes, das Setzen der Firewall-Regeln und die Konfiguration der WS-Management-Einstellungen.
| Option | Beschreibung |
|---|---|
| -Force | Überspringt alle Bestätigungsabfragen |
| -SkipNetworkProfileCheck | Erlaubt Remoting auch in öffentlichen Netzwerken |
Test-WSMan prüfen, ob der WinRM-Dienst auf einem entfernten Computer erreichbar ist.
Enter-PSSession startet eine interaktive PowerShell-Sitzung auf einem entfernten Computer. Alle danach eingegebenen Befehle werden auf dem Remote-System ausgeführt.
| Option | Beschreibung |
|---|---|
| -ComputerName | Name des Zielcomputers |
| -Credential | Anmeldeinformationen für die Sitzung |
| -Session | Verwendet eine bestehende PSSession |
| -Port | WinRM-Port (Standard: 5985/5986) |
Enter-PSSession:Exit-PSSession oder exit kehren Sie zur lokalen Shell zurück.
Invoke-Command führt einen Befehl oder ein Skript auf einem oder mehreren entfernten Computern aus – ohne eine dauerhafte Sitzung zu öffnen.
| Option | Beschreibung |
|---|---|
| -ComputerName | Ein oder mehrere Zielcomputer (Array) |
| -ScriptBlock | Codeblock mit den auszuführenden Befehlen |
| -FilePath | Pfad zu einem Skript, das ausgeführt werden soll |
| -Session | Verwendet eine bestehende PSSession |
| -ArgumentList | Parameter für den ScriptBlock |
| -AsJob | Führt den Befehl als Hintergrund-Job aus |
Invoke-Command:Invoke-Command effizienter als Enter-PSSession, da keine dauerhafte Sitzung aufgebaut wird.
New-PSSession erstellt eine persistente Remotesitzung. Diese kann für mehrere Invoke-Command-Aufrufe wiederverwendet werden – ohne jedes Mal eine neue Verbindung aufzubauen.
| Option | Beschreibung |
|---|---|
| -ComputerName | Name des Zielcomputers |
| -Name | Eigenen Namen für die Sitzung vergeben |
| -Credential | Anmeldeinformationen für die Sitzung |
| -SessionOption | Zusätzliche Konfigurationen (Timeout, etc.) |
Get-PSSession:TrustedHosts ist keine eigenständiges Cmdlet, sondern eine WS-Management-Einstellung. Sie definiert, welche Remote-Computer ohne gegenseitige Authentifizierung (Kerberos) akzeptiert werden – nützlich für Workgroups oder IP-basierte Verbindungen.
| Einstellung | Beschreibung |
|---|---|
| "Server01" | Vertraue nur einem bestimmten Host |
| "Server01,Server02" | Mehrere Hosts (kommagetrennt) |
| "*" | Vertraue allen Hosts (unsicher!) |
| "192.168.1.*" | Wildcard für IP-Bereich |
Get-Item WSMan:\localhost\Client\TrustedHosts:"*" als TrustedHosts ist sehr unsicher und sollte nur in abgeschotteten Testumgebungen verwendet werden. Verwenden Sie immer die spezifischen Hostnamen oder IPs.
Restart-Service WinRM.
Enable-PSRemoting
Enter-PSSession
Invoke-Command
New-PSSession
TrustedHosts
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Service } – Dienste auf Server01 abfragen