Hyper-V og PowerShell

I PowerShell, som er et meget stærkt scripting sprog, bruge kommandoer som du måske kender det fra Cisco CLI, linux eller andre sprog til at udføre nogle opgaver på en hurtigere måde.

Her vil vi se på hvordan vi ved hjælp af PowerShell vil kunne installerer virtualiseringsprogrammet Hyper-V, som er en tjeneste/Feature i Windows Server 2019.

Selv om du er helt nyt til PowerShell vil du godt kunne være med her, da vi tager hvert enkelt skridt for sig.

Installation af Hyper-V modul gennem PowerShell

For at kunne bruge Hyper-V skal vi have installeret tjenesten. Tjenesterne kaldes også Features i Windows Server 2019, som jeg vil tage udgangspunkt i.

Forudsætninger for Hyper-V

For at kunne bruge denne guide, skal du først sikre dig at du har følgende på plads:

  1. Opdateret Windows Server 2019 med adgang til internettet
    Du kan opdaterer din server gennem Windows Update, hvis serveren har forbindelse til internettet.
  2. Seneste version af PowerShell
    Seneste version af powerShell kan hentes på siden:
    https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-7.1

Du kan kontrollerer versionen af PowerShell ved at køre kommandoen:
$PSVersionTable
som vist her:

PowerShell version

 

 

 

 

Installation af Hyper-V modul og Feature

Hyper-V som virtualiseringsplatform består af en feature og et modul til PowerShell. Vi kunne godt nøjes med at installerer featuren, men så vil vi ikke kunne bruge PowerShell. Modsat kunne vi nøjes med at installerer PowerShell, men så vil det kræve at vi have en anden maskine at skulle administrere, så vi har brug for at installerer begge dele.

Først vil vi installerer featuren

Installation af feature

I dette PowerShell Script får vi installeret Hyper-V featuren på serveren med navnet srv01 hvor jeg desuden får installeret de ekstra tools (grafiske) jeg kan bruge til administration af Hyper-V miljøet.

Kommandoen Install-WindowsFeature  installerer en feature. Hvilken feature du vil installere angiver du med parameteren -Name. For at angive at det er på en given server, angiver du parameteren -ComputerName. Hvis det er på den lokale server, behøver du ikke angive -ComputerName. For at få installeret det grafiske tool til administration af Hyper-V angives -IncludeManagementTools.

#Remote:
Install-WindowsFeature -Name Hyper-V -ComputerName srv01 -IncludeManagementTools -Restart

#Local:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Installation af PowerShell-Module

For at få installeret det PowerShell modul du skal bruge for at kunne administrerer Hyper-V gennem PowerShell, skal du udføre installationen. 

Hvis du brugte den tidligere parameter -IncludeManagementTools under installation af feature, får vi automatisk PowerShell modulet med. Hvis du ikke har fået det med, kan du udføre denne kommando for at få PowerShell Delen med.

Install-WindowsFeature -Name Hyper-V-PowerShell

Opret en virtuel switch

For at kunne oprette virtuelle maskiner (VM's) skal du først oprette en virtuel switch. Som du fysisk vil kunne forbinde dine servere til en switch, skal vi på lidt samme måde have oprettet en switch i Hyper-V som så bare er virtuel i stedet for fysisk.

Undersøg hvilket netkort du bruger

Der er flere forskellige slags af switch i Hyper-V, men det vil jeg ikke gå så meget ind på i denne gennemgang.
I stedet vil jeg fokuserer på hvad er er nødvendigt for at kunne oprette en virtuel server, så IT er made easy!

For at kunne oprette en switch skal vi først undersøge hvad det netkort, der giver os forbindelse til omverden hedder. Det gør vi naturligvis også i PowerShell:

Get-NetAdapter

Hvis du er i tvivl om hvilket netkort du skal bruge, så åben evt. controlpanel - network and sharing center 

 

 

Her er det tydeligt at jeg har fat i den rigtige. Navnet "Ethernet 2" skal jeg bruge senere. OBS: Det hedder sikkert noget andet for dig

Opret switchen

Med navnet på netkortet fra tidligere, kan du nu oprette switchen i powershell. 
I den følgende kommando oprettes switchen med navnet exSwitch som tilsluttes netkortet Ethernet 2 og serverens operativsystem og Hyper-V skal deles om netkortet, som angivet i parameteren -AllowManagementOS $true

New-VMSwitch -name exSwitch -NetAdapterName "Ethernet 2" -AllowManagementOS $true

Når det er udført, vil du få en oversigt som denne

 

Opret virtuel maskine

Du er nu klar til at oprette en virtuel maskine. Jeg vil i denne guide dog ikke gå ind på hvordan installation af operativsystem i den virtuelle maskine installeres! For at oprette en virtuel maskine, skal vi gøre brug af New-VM kommandoen.

I eksemplet herunder opretter vi en virtuel maskine med navnet srv02 4Gb ram. Vi vil tage udgangspunkt i eksemplet fra Microsoft du kan finde her: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/create-virtual-machine#create-a-virtual-machine-with-powershell

 

# Angiv VM Navn, Switch Navn, og stien til hvor installationsfilen ligger.
$VMName = 'srv02'
$Switch = 'exSwitch'

#OBS: Du skal tilpasse denne til hvor din ISO fil ligger!!!!
$InstallMedia = 'C:\Users\Win_2019_x64_dvd_6851151.iso'

# Opret en ny Virtual Maskine
New-VM -Name $VMName -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath "D:\Virtual Machines\$VMName\$VMName.vhdx" -NewVHDSizeBytes 40GB -Path "D:\Virtual Machines\$VMName" -SwitchName $Switch

# Tilføj ISO filen som en DVD drev
Add-VMScsiController -VMName $VMName
Add-VMDvdDrive -VMName $VMName -ControllerNumber 1 -ControllerLocation 0 -Path $InstallMedia

# Mount Installatiosmediet
$DVDDrive = Get-VMDvdDrive -VMName $VMName

# Opsæt den virtuelle maskine til at boote fra dvd drev som er ISO filen
Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive

Start den virtuelle maskine

Hvis alt er gået vel indtil videre, har du fået oprettet en virtuel maskine, men den er ikke så meget ved, da den ikke er tændt og der er ikke installeret noget på den endnu. Da den er sat op til at boote fra ISO filen, vil den virtuelle maskine gå i gang med installationen når du tænder den.

Så vores næste skridt er at få den tændt som sker i dette PowerShell script.

Start-VM -Name 'srv02'

Opsamling - IT made easy

Vi har her gennemgået hvordan du kan installerer hyper-v, oprette en virtuel switch og oprettet en virtuel maskine. Vi vil senere se nærmere på administrationen af virtuelle maskiner. Jeg vil desuden opfordre dig til at se min youtube kanal som du finder ved at trykke på knappen herunder.