Verwendung von Enter-PSSession für die Remote-PowerShell-Verwaltung
Das Cmdlet „Enter-PSSession“ ist eines dieser Tools, das die Remote-Verwaltung mehrerer Windows-Rechner deutlich vereinfacht. Ob Sie ein Problem beheben, Konfigurationen bereitstellen oder einfach nur einen Remote-Server überprüfen möchten – es ist meist die erste Wahl. In manchen Umgebungen kann es etwas knifflig werden – aufgrund von Netzwerk- oder Berechtigungsproblemen funktioniert es möglicherweise nicht sofort. Sobald es aber läuft, ist es äußerst komfortabel. Beachten Sie, dass Sie je nach Umgebung eventuell einige Einstellungen anpassen oder Befehle ausführen müssen, damit alles reibungslos funktioniert. Und ja, Windows macht es einem manchmal unnötig kompliziert.
So beheben Sie häufige Probleme mit Enter-PSSession
Aktivieren von PowerShell-Remoting unter Windows 10/11 für den Remotezugriff
Standardmäßig ist PSRemoting auf Desktop-Windows-Installationen (Win10/11) deaktiviert, vermutlich weil Microsoft befürchtet, dass die meisten Benutzer dadurch Sicherheitsrisiken eingehen könnten. Um es zu aktivieren, öffnen Sie PowerShell als Administrator und führen Sie folgenden Befehl aus:
Enable-PSRemoting -Force
Dieser Befehl bewirkt einiges: Er aktiviert WinRM, stellt den automatischen Start ein, optimiert die Firewall und startet den Dienst neu. In öffentlichen Netzwerken müssen Sie unter Umständen die Option `-SkipNetworkProfileCheck` hinzufügen, etwa so:
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Dies ist wichtig, da WinRM in öffentlichen WLANs oder bei bestimmten Netzwerkprofilen deaktiviert bleiben kann.
Überprüfung, ob WinRM tatsächlich ausgeführt wird und auf Anfragen wartet.
Falls die Remote-Verbindung weiterhin fehlschlägt, überprüfen Sie, ob der WinRM-Dienst ordnungsgemäß funktioniert. Führen Sie Folgendes aus:
Get-Service WinRM | Select MachineName, Name, Status, StartType
Alles in Ordnung? Der Status sollte „Wird ausgeführt“ anzeigen und der Starttyp auf „Automatisch“ eingestellt sein. Falls nicht, starten Sie es manuell mit:
Start-Service WinRM
Manchmal blockiert die Firewall eingehenden WinRM-Datenverkehr.Überprüfen Sie, ob der TCP-Port 5985 (HTTP) oder 5986 (HTTPS, falls SSL aktiviert ist) in Ihren Firewall-Regeln geöffnet ist. Sie können dies in den bestehenden Windows-Firewall-Einstellungen oder über PowerShell überprüfen.
New-NetFirewallRule -Name "WinRM HTTP" -DisplayName "Allow WinRM over HTTP" -Protocol TCP -LocalPort 5985 -Action Allow
Weisen Sie Ihrem Benutzer die richtige Gruppe zu
Aus Sicherheitsgründen dürfen nur bestimmte Benutzergruppen eine Remote-Verbindung herstellen. Normalerweise muss Ihr Konto zu den Administratoren oder Remote-Verwaltungsbenutzern gehören. In manchen Konfigurationen müssen Sie sich möglicherweise explizit hinzufügen. Führen Sie folgenden Befehl in PowerShell aus:
Add-LocalGroupMember -Group "Remote Management Users" -Member "YourUsername"
Ersetzen Sie YourUsername„Benutzername“ durch Ihren tatsächlichen Benutzernamen. Das reicht in der Regel aus, sofern dies nicht durch Active Directory-Richtlinien blockiert wird.
Hinzufügen eines Remote-Hosts als TrustedHost
Wenn Sie versuchen, eine Verbindung über eine IP-Adresse oder einen CNAME-Eintrag (nicht über eine vollständige Domain) herzustellen, stoßen Sie möglicherweise auf Einschränkungen von TrustedHosts. Um dies zu beheben, führen Sie folgenden Befehl aus:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100"
Oder, für mehrere Hosts oder Platzhalter:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*.woshub.com"
Starten Sie anschließend den WinRM-Dienst neu mit:
Restart-Service WinRM
Beachten Sie, dass das Hinzufügen von Hosts zu TrustedHosts Sicherheitsrisiken mit sich bringen kann. Gehen Sie daher mit Bedacht vor.
Testen der lokalen oder Remote-Konnektivität
Bevor Sie versuchen, eine Remote-Verbindung herzustellen, überprüfen Sie die lokale Einrichtung mit folgendem Befehl:
Test-WSMan -ComputerName localhost
Wenn die Versionsinformationen fehlerfrei zurückgegeben werden, ist Ihre WinRM-Konfiguration korrekt. Andernfalls müssen Sie zuerst die Serverseite überprüfen. Beachten Sie: Wenn die Remote-Verbindung nicht aktiviert ist, erhalten Sie eine Meldung, dass keine Verbindung hergestellt werden kann, und es werden Fehler wie die folgenden angezeigt:
Test-WSMan :
Making the Actual Connection
Once everything’s ready, connecting is straightforward:
Enter-PSSession -ComputerName your_remote_host
If you need credentials, use the -Credentials switch:
Enter-PSSession -ComputerName your_remote_host -Credentials (Get-Credential)
This will pop up a login box. On one setup it worked right away, on another I had to make sure the user was in the right group and WinRM was enabled everywhere. Weird thing is sometimes it’s flakey, especially if you’re mixing domain and workgroup machines or trying over IP without proper trust. Just keep an eye on those details.
Over SSH — Modern Twist for PowerShell Remoting
Up to PowerShell 7+, you can also connect over SSH if you have the built-in OpenSSH server enabled on the remote Windows machine (fingers crossed it’s set up).Use:
Enter-PSSession -HostName user@hostname
Or with an SSH key:
Enter-PSSession -HostName user@hostname -KeyFilePath C:\PS\max_rsa_key
This is kind of a newer, more secure way, especially if WinRM isn’t an option.
Remember, if connecting over IP, you'll likely need to add the host to the TrustedHosts list, because of how default WinRM settings work. Otherwise, authentication gets weird.
In general, using Enter-PSSession and related commands like New-PSSession are perfect for interactive sessions — but for scripting or running on multiple machines at once, you’d probably jump into Invoke-Command.