Hoe u Enter-PSSession kunt gebruiken voor beheer van externe PowerShell-sessies
De cmdlet Enter-PSSession is een van die tools die het beheer van meerdere Windows-machines op afstand echt kunnen vereenvoudigen. Als je een probleem wilt oplossen, configuraties wilt implementeren of gewoon een externe server wilt controleren, is dit meestal de eerste stap. In sommige configuraties werkt het misschien niet meteen, bijvoorbeeld door netwerkproblemen of problemen met de machtigingen. Maar als het eenmaal werkt, is het erg soepel. Houd er wel rekening mee dat je, afhankelijk van je omgeving, mogelijk een paar instellingen moet aanpassen of een aantal opdrachten moet uitvoeren om alles goed te laten communiceren. En ja, Windows maakt het soms net iets ingewikkelder dan nodig is.
Hoe je veelvoorkomende problemen met Enter-PSSession kunt oplossen
PowerShell-remotebeheer inschakelen op Windows 10/11 voor toegang op afstand
Standaard is PSRemoting uitgeschakeld op desktop-Windows-installaties (Win10/11), waarschijnlijk omdat Microsoft denkt dat de meeste gebruikers hiermee beveiligingsrisico’s zouden lopen. Om het in te schakelen, opent u PowerShell als beheerder en voert u de volgende opdracht uit:
Enable-PSRemoting -Force
Deze opdracht doet veel: WinRM wordt ingeschakeld, automatisch gestart, de firewall wordt aangepast en de service wordt opnieuw gestart. Soms, als u zich op een openbaar netwerk bevindt, moet u mogelijk -SkipNetworkProfileCheck toevoegen, zoals in het volgende voorbeeld:
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Dit is belangrijk omdat WinRM op openbare wifi-netwerken of bij bepaalde netwerkprofielen met strengere beveiligingsvoorschriften mogelijk uitgeschakeld blijft.
Controleren of WinRM daadwerkelijk actief is en luistert.
Als de verbinding via de externe verbinding nog steeds niet lukt, controleer dan of de WinRM-service correct werkt. Voer het volgende commando uit:
Get-Service WinRM | Select MachineName, Name, Status, StartType
Alles in orde? De status zou ‘Actief’ moeten zijn en het opstarttype ‘ Automatisch’. Zo niet, start het dan handmatig met:
Start-Service WinRM
Soms blokkeert de firewall inkomend WinRM-verkeer. Controleer of TCP-poort 5985 (HTTP) of 5986 (HTTPS als SSL is ingeschakeld) openstaat in uw firewallregels. U kunt dit toevoegen of controleren via de bestaande Windows Firewall-instellingen of via PowerShell, bijvoorbeeld:
New-NetFirewallRule -Name "WinRM HTTP" -DisplayName "Allow WinRM over HTTP" -Protocol TCP -LocalPort 5985 -Action Allow
Uw gebruiker toegang geven tot de juiste groep
Om veiligheidsredenen mogen alleen bepaalde gebruikersgroepen op afstand verbinding maken. Normaal gesproken moet uw account deel uitmaken van de groep Beheerders of Gebruikers voor beheer op afstand. In sommige configuraties moet u uzelf mogelijk expliciet toevoegen. Voer dit commando uit in PowerShell:
Add-LocalGroupMember -Group "Remote Management Users" -Member "YourUsername"
Vervang dit YourUsernamedoor uw daadwerkelijke gebruikersnaam. Dat is meestal voldoende, tenzij Active Directory-beleid dit blokkeert.
Een externe host toevoegen als vertrouwde host
Als u probeert verbinding te maken via een IP-adres of CNAME (en niet via een volledig domein), kunt u tegen TrustedHosts-beperkingen aanlopen. Om dit op te lossen, voert u het volgende commando uit:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100"
Of, voor meerdere hosts of wildcards:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*.woshub.com"
Start daarna de WinRM-service opnieuw op met:
Restart-Service WinRM
Houd er rekening mee dat het toevoegen van hosts aan TrustedHosts de beveiligingsrisico’s kan verhogen, dus doe dit met de nodige voorzichtigheid.
Testen van lokale of externe connectiviteit
Controleer de lokale configuratie voordat u probeert op afstand verbinding te maken met:
Test-WSMan -ComputerName localhost
Als de versie-informatie zonder fouten wordt weergegeven, is uw WinRM-configuratie in orde. Zo niet, dan moet u eerst de serverkant corrigeren. Houd er rekening mee dat als remote toegang niet is ingeschakeld, u een bericht krijgt dat er geen verbinding kan worden gemaakt en fouten ziet zoals:
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.