Setup WinRM trust

Om Remote Management taken uit te kunnen voeren op een Windows server met Powershell en Windows Remote Shell (WinRS) is het noodzakelijk dat het (Windows 10) workstation waarmee de taken uitgevoerd worden, vertrouwd wordt door de remote server.Als eerste dient op de server WinRM geconfigureerd te worden (als dat al niet gedaan is) Het commando hiervoor is:

winrm quickconfig

Hierna wordt de trust gemaakt met het commando:

winrm set winrm/config/client @{TrustedHosts="LAPTOP-NOKKIE"}

Uiteraard dient de computernaam wel door de server bekend te zijn middels DNS of de lokale hosts file.

Op de client PC (mijn laptop) dient de server vertrouwd te worden als ik een 2-way trust wil maken. Dezelfde commando’s:

winrm quickconfig
winrm set winrm/config/client @{TrustedHosts="HYPER-V01"}

Ook hier geldt natuurlijk dat de servernaam ‘resolved’ kan worden.

Kerberos authentication is standaard al enabled dus in geval van een AD-omgeving zal dit gebruikt worden. Mocht je geen AD gebruiken, dan kan er een Basic Authentication plaatsvinden door de gebruiker/wachtwoord mee te geven in de remote-commando’s.

WinRS

Bijvoorbeeld:

winrs -u:HYPER-V01\Administrator -r:HYPER-V01 ipconfig

winrs01Hiermee kunnen dus commando’s op de remote server uitgevoerd worden.

Powershell

Met behulp van powershell kunnen ook remote commando’s en scripts uitgevoerd worden op een remote server. Hiervoor is o.a. het commando ‘Invoke-Command’.

Als eerste plaatsen we de credentials in een variabel die we later kunnen gebruiken:

$cred = Get-Credentials

icm01vervolgens kan het volgende commando gegeven worden:

Invoke-Command -ComputerName HYPER-V01 -Credential $cred {ipconfig}

icm02Uiteraard kunnen ook powershell cmdlets gebruikt worden. Bijvoorbeeld om de server te herstarten:

Invoke-Command -ComputerName HYPER-V01 -Credential $cred {restart-computer -force}