PowerShell Remotezugriff einrichten / prüfen

Damit Sie mit PowerShell über Remote mit einem System verbinden können, sind folgende Voraussetzungen notwendig:

  • WinRM Dienst läuft und wird automatisch gestartet
  • PS Remoting ist aktiv
  • Firewall Port 5985 für Eingehende Regel TCP freigeben
  • Trustethosts einrichten (für Systeme ohne / außerhalb einer Domänen)

WinRM Dienst 

Starten Sie den WinRM Dienst auf dem Remotesystem und definieren den autostart auf automatisch

PowerShell Remote
PowerShell Remote

PS Remote aktivieren 

Starten Sie PowerShell als Administrator auf dem Remotesystem aus und führen Sie den folgenden Befehl für die Aktivierung von PowerShell Remote aus

Enable-PSRemoting

Grund- / Defaultkonfiguration WinRM 

Starten Sie PowerShell oder die Kommandozeile als Administrator auf dem Remotesystem aus und führen Sie den folgenden Befehl aus

winrm quickconfig

Trustethosts

Wenn Sie eine Remoteverbindung in keinem Domänenverbund ausführen möchten (Arbeitsgruppe), müssen Sie auf dem lokalen System das Remotesystem als Trustethost hinterlegen.

Starten Sie PowerShell oder die Kommandozeile als Administrator auf dem lokalen System und führen den folgenden Befehl aus, wobei Sie Full qualified name für Ihre Remotesysteme verwenden

winrm s winrm/config/client '@{TrustedHosts="FullyQualifiedNameSystem1,FullyQualifiedNameSystem2"}'

Verbindungstest 

Führen Sie den folgenden Befehl aus um zu testen ob grundsätzlich eine Kommunikation zwischen den lokalen und dem Remotesystem möglich ist.

Starten Sie PowerShell als Administrator auf dem lokalen System und führen den folgenden Befehl aus, wobei Sie Ihren Full qualified name des Remotesystems hinterlegen

Test-NetConnection "FullyQualifiedNameRemoteSystem"

Wenn dieser Test erfolgreich ist, dann testen Sie im Anschluss über den folgenden Befehl WSMAN.
Auch hier geben Sie Ihren Full qualified name des Remotesystems an.

test-wsman -computername "FullyQualifiedNameRemoteSystem" -authentication default

Verläuft dieser Test auch erfolgreich, so können Sie eine Verbindung über PowerShell zum Remotesystem aufbauen.
Zum testen können Sie das folgende PowerShell Skript für die Ausgabe des Datums des Remotesystems verwenden. Geben sie Ihren Usernamen, Passwort und Systemname des Remotesystems an.

$AdminUserName = "Domäne/Arbeitsgruppe\UserName"
$pass = ConvertTo-SecureString -AsPlainText "Passwort" -Force
$Machine = "FullyQualifiedNameRemoteSystem"
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminUserName,$pass
Invoke-Command -ComputerName $Machine -credential $credential -ScriptBlock {get-date -Format yyyyMMddTHHmmss}

Konfiguration auslesen 

Über die folgende Befehle können Sie die Konfiguration auslesen, z.B. welcher Port wird verwendet, welche Authentifizierung, ….

Starten Sie PowerShell oder die Kommandozeile auf dem Remotesystem als Administrator und führen den folgenden Befehl für die anzeige gesamten WINRM Konfiguration aus.

winrm get winrm/config

Sie können wie in den folgenden Beispielen einzelne Bereiche anzeigen lassen.

winrm get winrm/config/client/auth
winrm get winrm/config/service/auth
winrm get winrm/config/service
winrm get winrm/config/winrs

Konfiguration anpassen 

Für die Anpassung der Konfiguration sehen Sie die folgenden Beispiele für Anpassung des Ports bzw. Authentifizierung.

winrm set winrm/config/client/DefaultPorts '@{HTTP="5985"}'
winrm set winrm/config/client/auth '@{Basic="true"}'
winrm set winrm/config/service/DefaultPorts '@{HTTP="5985"}'
winrm set winrm/config/service/auth '@{Basic="true"}'

Hilfe

Für die Hilfe geben Sie den Befehl führen Sie den folgenden Befehl aus

winrm