I en tidigare artikel, PowerShell i Windows Server 2012R2, tog jag upp de allra mest grundläggande PowerShell-kommandona för nätverksadministratören. I Hyper-V så handlar det för nätverksadministratörens del om att skapa och koppla olika virtuella nätverk. Låt oss titta på hur man använder PowerShell till det. Samtliga kommandon i artikeln körs i PowerShell fönstret på värden, Hyper-V servern.

Skapa virtuella switchar
Vi börjar med att samla information om de fysiska nätverkskorten med kommandot Get-NetAdapter. Vill man att de virtuella servrarna ska komma åt omvärlden måste man koppla sin virtuella switch till ett fysiskt nätverkskort. Därefter så ser vi efter om vi redan har några virtuella switchar konfigurerade med kommandot Get-VMSwitch.

powershell

Som du ser på bild 1 så fick jag inget svar på Get-VMSwitch vilket helt enkelt betyder att jag inte har någon virtuell switch ännu. Låt oss ordna det på en gång.
Vi skapar en virtuell switch med kommandot New-VMSwitch. För att skapa en intern eller privat virtuell switch behöver man lägga till –SwitchType Internal/Private. Du kan läsa mer om detta i PowerShell-hjälpen, Get-Help New-VMSwitch -full. Skillnaden mellan en intern och en privat virtuell switch är för övrigt att en intern switch har nätverkskontakt med värden vilket inte en privat switch har. I vårt fall kopplar jag den virtuella switchen till ett nätverkskort, då blir den automatiskt av typen External.

powershell

Bild 2 visar hur jag kopplar den virtuella switchen till mitt trådlösa nätverkskort, wi-fi, med en kommentar att den är ”Kopplad till Wi-Fi”. Jag har även angett –AllowManagementOS $true vilket betyder att även värden får använda sig av detta nätverkskort för extern nätverksåtkomst.

Ansluta en VM till switchen
Du kan skapa ett nytt nätverkskort i din VM och ansluta det direkt. Tänk dock på att detta måste göras på en avstängd VM.

powershell

Det går att koppla och koppla ifrån befintliga nätverkskort under drift genom att använda sig av Connect-VMNetworkAdapter och Disconnect-VMNetworkAdapter. Vi börjar med att koppla ifrån nätverkskortet vi nyss skapade (Wi-Fi). Därefter kopplar vi det redan befintliga nätverkskortet (Ethernet) till den virtuella switchen istället. Tänk på att det virtuella nätverkskortets namn är det namn som syns i Hyper-V Manager, SCVMM eller med Get-VMNetworkAdapter och inte det namn som gäst OS:et har satt.

powershell

Trafikstyrning
Man kan styra/förhindra nätverkstrafik genom att sätta ACL:er (Access Control Lists) på ett virtuellt nätverkskort med kommandot Add-VMNetworkAdapterAcl. Om du vill styra lite mer granulärt så finns även Add-VMNetworkAdapterExtendedAcl.

powershell

Det går även att “tagga” VLAN direkt på ett virtuellt nätverkskort med Set-VMNetworkAdapterVlan.

powershell

Sammanfattning
Den här gången har jag gått igenom några grundläggande PowerShell-kommandon i Windows Server 2012R2 Hyper-V miljö. Jag hoppas att dessa rader har fått dig lite nyfiken på vad man kan göra med PowerShell i virtuella miljöer. Det kommer en hel del nytt i Server 2016 men det får jag återkomma till i en annan artikel. Nästa gång tar vi en titt på PowerShell och nätverk i Azure.
Avslutningsvis vill jag ge dig ett bra kommando för att hitta olika PowerShell-cmdlets inom ett speciellt område, exempelvis i virtuella miljöer, Get-Command *vm*. Detta ger dig en lång lista med alla cmdlets som innehåller vm.

Fakta

Befattning: Vd
Företag: ITCS Communication & Security
Linkedin: Magnus Eklöf
Twitter: @itcsmagnus
E-post: magnus.eklof@itcomsec.se
Hemsida: www.itcomsec.se
Expertområden: It-säkerhet, företrädesvis inom Microsoft-världen, identitetshantering (IAM), cloud (Azure), nätverk, brandväggar.
Certifieringar: Äldre certifieringar såsom Novell CNE3, CNE4, Citrix CCA, SonicWALL CSSA, Clavister Firewall & VPN. Studerar för närvarande till CISSP.
Bakgrund: Designat, implementerat och driftat nätverk och servrar sedan 1990. Driver eget konsultbolag inom it-säkerhet sedan 2007 med fokus på nätverk och identitetshantering.