55 lines
2.4 KiB
PowerShell
Executable File
55 lines
2.4 KiB
PowerShell
Executable File
# Konfigurierbare Variablen
|
|
$VMName = "DeploymentClient" # Name der VM
|
|
$VMPath = "C:\HyperV\VMs\$VMName" # Speicherort der VM-Dateien
|
|
$VHDXPath = "$VMPath\$VMName.vhdx" # Pfad zur virtuellen Festplatte
|
|
$ISOPath = "C:\ISO\Win11.iso" # Pfad zur Windows 11 ISO-Datei
|
|
$SwitchName = "ExternalSwitch" # Name des virtuellen Switches
|
|
$MemoryStartupMB = 4096 # RAM für die VM (MB)
|
|
$ProcessorCount = 2 # Anzahl der virtuellen CPUs
|
|
$DiskSizeGB = 60 # Größe der virtuellen Festplatte (GB)
|
|
|
|
# 1. Prüfe, ob der virtuelle Switch existiert
|
|
if (-not (Get-VMSwitch -Name $SwitchName -ErrorAction SilentlyContinue)) {
|
|
Write-Host "Erstelle virtuellen Switch '$SwitchName'..." -ForegroundColor Cyan
|
|
New-VMSwitch -Name $SwitchName -NetAdapterName (Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } | Select-Object -First 1).Name -AllowManagementOS $true
|
|
}
|
|
|
|
# 2. Erstelle das VM-Verzeichnis
|
|
if (-not (Test-Path -Path $VMPath)) {
|
|
Write-Host "Erstelle VM-Verzeichnis: $VMPath" -ForegroundColor Cyan
|
|
New-Item -Path $VMPath -ItemType Directory
|
|
}
|
|
|
|
# 3. Erstelle die virtuelle Festplatte
|
|
Write-Host "Erstelle virtuelle Festplatte..." -ForegroundColor Cyan
|
|
New-VHD -Path $VHDXPath -SizeBytes ($DiskSizeGB * 1GB) -Dynamic
|
|
|
|
# 4. Erstelle die VM
|
|
Write-Host "Erstelle die VM '$VMName'..." -ForegroundColor Cyan
|
|
New-VM -Name $VMName `
|
|
-MemoryStartupBytes ($MemoryStartupMB * 1MB) `
|
|
-BootDevice VHD `
|
|
-VHDPath $VHDXPath `
|
|
-Path $VMPath `
|
|
-Generation 2 `
|
|
-SwitchName $SwitchName
|
|
|
|
# 5. Konfiguriere die VM-Hardware
|
|
Write-Host "Konfiguriere VM-Hardware..." -ForegroundColor Cyan
|
|
Set-VM -Name $VMName -ProcessorCount $ProcessorCount
|
|
Set-VM -Name $VMName -DynamicMemory -MinimumBytes 1024MB -MaximumBytes ($MemoryStartupMB * 1MB)
|
|
|
|
# 6. ISO einbinden
|
|
Write-Host "Binde Windows 11 ISO ein..." -ForegroundColor Cyan
|
|
Add-VMDvdDrive -VMName $VMName -Path $ISOPath
|
|
|
|
# 7. Sichere Bootreihenfolge (DVD zuerst)
|
|
Write-Host "Setze Bootreihenfolge auf DVD-Laufwerk..." -ForegroundColor Cyan
|
|
Set-VMFirmware -VMName $VMName -FirstBootDevice (Get-VMDvdDrive -VMName $VMName)
|
|
|
|
# 8. Starte die VM
|
|
Write-Host "Starte die VM '$VMName'..." -ForegroundColor Green
|
|
Start-VM -Name $VMName
|
|
|
|
Write-Host "VM '$VMName' wurde erfolgreich erstellt und gestartet!" -ForegroundColor Green
|