Anslut till din Windows Server med PowerShell

Inledning

PowerShell är en automatiseringsplattform och skriptspråk för Windows och Windows Server som förenklar hanteringen av dina system. Till skillnad från andra textbaserade kommandotolkar (shells) så nyttjar PowerShell kraften i .NET-ramverket som ger dig massor med inbyggd funktionalitet för att ta kontroll över dina Windows-miljöer.

Remote PowerShell

Vi har skapat en ny mall i vår kontrollpanel under namnet "Windows Server 2016 Remote PowerShell enabled" där remote PowerShell är aktiverat från start, vilket gör att du direkt efter skapandet av servern kan ansluta till den via PowerShell.

Säkerheten

I vanliga fall ska servern man ansluter via Remote PowerShell ligga under samma domän, då PowerShell som standard använder HTTP-protokollet för att skicka användarnamn och lösenord. Det resulterar i att dessa skickas okrypterat till servern.

För att säkra upp detta så har vi lagt till ett skript i mallen som körs när maskinen har blivit skapad.

Utöver att aktivera Remote PowerShell skapar det även ett egensignerat certifikat som används för att PowerShell ska kunna lyssna på HTTPS- istället för HTTP-protokollet och med detta skicka användarnamn och lösenord krypterat till servern.

Hur ser skriptet ut?

Aktiverar Remote PowerShell på servern.

Enable-PSRemoting -Force

Skapar ett egensignerat certifikat som vi kommer använda för att ansluta till servern.

$SelfSignedCertificate = New-SelfSignedCertificate -DnsName $env:computername -CertStoreLocation Cert:\LocalMachine\My -FriendlyName "PowerShell Remoting" -NotAfter 2030-01-01

Tar bort alla befintliga lyssnare. När man aktiverar Remote PowerShell så läggs en lyssnare till för HTTP.

Get-ChildItem WSMan:\localhost\Listener\ | Remove-Item -Recurse -Force

Vi skapar en ny lyssnare som använder sig av HTTPS och vårt egensignerat certifikat vi skapade.

New-Item -Path WSMan:\localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $SelfSignedCertificate.Thumbprint -force

Inaktiverar brandväggsreglerna för Remote PowerShell

Disable-NetFirewallRule -DisplayName "Windows Remote Management (HTTP-In)"

Skapar en ny regel för Remote PowerShell som tillåter trafik via port 5986.

New-NetFirewallRule -DisplayName "Remote PowerShell in (HTTPS-In)" -Name "Remote_PowerShell_in_(HTTPS-In)" -group "Remote PowerShell" -Profile Any -LocalPort 5986 -Protocol TCP

Så ansluter du till din nya server via PowerShell

Följande är ett exempel på hur ett skript kan se ut.

# IP-adressen till servern du vill ansluta till.
$IPAddress = "192.168.88.1"

# Ditt användarnamn och lösenord som används för att ansluta till servern.
Write-Host -ForegroundColor Cyan " [INFO] Please enter a administrative account for the server."
$AdminUserName = Read-Host -Prompt " Username"
$AdminPassword = Read-Host -Prompt " Password" -AsSecureString
$AdminCredentials = New-Object System.Management.Automation.PSCredential ($AdminUserName, $AdminPassword)

# Lägger till serverns IP-adress i TrustedHosts, så att du kan ansluta till den.
Write-Host -ForegroundColor Cyan " [INFO] Adding $IPAddress to TrustedHosts list."
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$IPAddress" -Force -ErrorAction SilentlyContinue

# Här skapas en session. Eftersom certifikatet servern har är ett egensignerat, så sker det ingen CA- eller CN-check av certifikatet.
Write-Host -ForegroundColor Cyan " [INFO] Creating session."
$SessionOption = New-PSSessionOption -SkipCACheck -SkipCNCheck
$Session = New-PSSession $IPAddress -UseSSL -SessionOption $SessionOption -Credential $AdminCredentials -ErrorAction Stop

# När sessionen är skapad så används kommandot Enter-PSSession för att gå in i sessionen.
Write-Host -ForegroundColor Cyan " [INFO] Entering Session."
Enter-PSSession -Session $Session

Spara filen som MinServer.ps1 och kör den i ett PowerShell-fönster eller via PowerShell ISE

Sammanfattning

Med detta så innebär det att du med hjälp av GleSYS API kan skapa en server i GleSYS Cloud och automatiskt konfigurera en ny IIS-webserver eller MS SQL Databaserver.

Du kan även på ett snabbt och säkert sätt skicka ut filer eller nya brandväggsregler till alla maskiner i ditt kluster, vilket minskar risken för konfigurationsmissar. Med lösningen går det också fort att få upp en ny server om något skulle krångla och inte går att rädda.

Hittar du inte det du söker?

Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.

Skicka e-post Ring 0200-23 88 00