sigsys|dk


Blog om udvikling

Powershell remoting

udgivet 8/11/2016 12:12:00 PM

Det er forholdsvis simpel at lave en remote session i PowerShell, man skal dog først lave noget opsætning:

  • Man skal starte PSRemoting på klient og server
  • IP restriction kan tilføjes hvis man kun vil tillade bestemte IP'er at remote ind
  • Hvis man prøver at oprette en remote session ved brug af ssl, til en azure maskine, skal man tilføje et certifikat til maskinen

Start af PSRemoting

For at kunne starte en remote session skal der startes en service. Fyr op for en powershell konsol, som administrator og kør følgende i prompten:

Enable-PSRemoting -Force

Da denne kommando tilføjer en firewall regel, til indgående trafik anbefales der at man sætter noget IP restriction på. Dette kan gøres fra prompten:

Set-Item wsman:\localhost\client\trustedhosts *

* gør at alle kan remote ind, hvilket jeg ikke vil anbefale. Man kan udskifte * med en liste af kommasepareret ip adresser for at opnå en form for restriktion.

Test af forbindelse

I mit tilfælde vil jeg gerne kunne styre min farm af Azure servere (Jeg har tre til at køre denne blog). For at kunne gøre dette skal man huske at åbne i den ydre firewall også! Ellers åbner man kun i den interne, hvilket gør at serverne kan nå hinanden på den interne VPN (hvis man har sat dette op). Udefra er der lukket, så husk at åbne her!

Man kan nu teste forbindelsen med

Test-WsMan [IP eller host]

Oprettelse af forbindelse

Meldes der ok, er man klar til at fyre op for en session:

Enter-PSSession -ComputerName [IP eller host] -Credential [brugernavn]

Ønsker man kun at fyre script blokke af, er det også muligt via Invoke-Command

Invoke-Command -ComputerName [IP eller host] -ScriptBlock { COMMAND } -credential [brugernavn]

Brug af SSL

Pga en manglende wildcard certifikat til cloudapp.net kan det godt være lidt svært, hvis man vil bruge -UseSSL når man laver en Enter-PSSession. For at få dette til at virke, har jeg været nød til at følge denne https://blogs.endjin.com/2014/03/a-step-by-step-guide-to-connecting-to-an-azure-virtual-machine-with-powershell-remoting. Man skal lave nogle krumspring, dog virker det i sidste ende.