PowerShell ile Hyper-V Sanal Makinelerini Yönetme
Bu makale, Hyper-V sanal makinelerini PowerShell konsolundan yönetme hakkındadır. Sanal anahtarların ve sanal makinelerin nasıl oluşturulacağına, VM ayarlarının nasıl değiştirileceğine ve VM'lerin nasıl yönetileceğine bakacağız. Bu komutları, Hyper-V VM'lerinizi manuel olarak yönetmek için veya çeşitli görevleri otomatikleştirmek için PowerShell betiklerinizde kullanabilirsiniz.
Windows Server ve Windows 10/11'de Hyper-V Rolünü Etkinleştirme
Hyper-V rolünü yüklemek için, bir ana bilgisayarın sanallaştırma destekli SLAT özellikli bir CPU'ya sahip olması gerekir. Windows Server'da, Hyper-V rolünü yüklemek için aşağıdaki PowerShell komutu kullanılır:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -RestartMasaüstü sürümlerinde (Windows 10 ve 11), Hyper-V rolü şu şekilde kurulur:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -AllBir Hyper-V ana bilgisayarını yönetmek için bilgisayarda Hyper-V PowerShell modülü kurulu olmalıdır. Kullanılabilir komutların tam listesini (Windows sürümünüze bağlıdır) aşağıdaki gibi görüntüleyebilirsiniz:
Get-Command -Module hyper-v
Windows Server 2022'de, Hyper-V modülünde 245 cmdlet kullanılabilir.
Hyper-V ana bilgisayar ayarlarının bir listesini görüntülemek için aşağıdaki komutu kullanın:
Get-VMHost|fl *Yalnızca kullanılabilir CPU çekirdeği ve RAM sayısı hakkındaki bilgileri göstermek için:
Get-VMHost| select LogicalProcessorCount, MemoryCapacityKullan
Set-VMHostHyper-V ana bilgisayar ayarlarını değiştirmek için. Aşağıdaki komut, sanal disklere ve VM yapılandırma dosyalarına giden varsayılan yolları değiştirecektir:
Set-VMHost -VirtualMachinePath E:\VMs -VirtualHardDiskPath E:\VMs\VHD'PowerShell ile Hyper-V Sanal Anahtarı Oluşturun
Her şeyden önce, Hyper-V sunucunuzda bir sanal anahtar oluşturun. Sanal makineler ağa yalnızca bir sanal anahtar aracılığıyla erişebilir.
Hyper-V ana bilgisayarında kullanılabilir fiziksel ağ bağdaştırıcılarının bir listesini görüntüleyelim:
Get-NetAdapter | where {$_.status -eq "up"}Sunucunuz SR-IOV (Tek Köklü Giriş/Çıkış (I/O) Sanallaştırma)'yı destekliyorsa, anahtarınızı oluştururken seçeneği etkinleştirmeniz gerektiğini unutmayın. Mevcut bir vSwitch için SR-IOV'yi etkinleştiremezsiniz. Hyper-V sanal makineleri için SR-IOV desteğinin nasıl etkinleştirileceği hakkında daha fazla bilgi edinin.
Harici bir sanal anahtar oluşturun:
New-VMSwitch -Name "ExternalVMSwitch" -AllowManagementOS $True -NetAdapterName Ethernet0 -SwitchType External
PowerShell Kullanarak Hyper-V Sanal Makinesi Oluşturma
Yeni bir Hyper-V sanal makinesi oluşturmak için,
New-VMcmdlet'i kullanılır. Bu örnekte, 1 GB RAM ve 10 GB VHDX disk ile yeni bir Generation 2 VM oluşturacağız.
$VMName = "mun-prx2"
$VM = @{
Name = $VMName
MemoryStartupBytes = 1Gb
Generation = 2
NewVHDPath = "E:\HV\$VMName\$VMName.vhdx"
NewVHDSizeBytes = 10Gb
BootDevice = "VHD"
Path = "E:\HV\$VMName"
SwitchName = "ExternalVMSwitch"
}
New-VM @VMBurada, Hyper-V üzerinde bir Windows 11 sanal makinesi oluşturmak için PowerShell kullanımına bir örnek verilmiştir.
VM ayarlarını değiştirmek için kullanabileceğiniz komutlara bir göz atalım.
Bir VM için RAM boyutunu artırmak için:
Get-VM -Name mun-prx2| Set-VMMemory -StartupBytes 2GbvCPU sayısını değiştirmek için:
Set-VMProcessor mun-prx2 -Count 2Hyper-V sanal makinesi için otomatik başlatmayı etkinleştirin:
Get-VM -VMname mun-prx2 | Set-VM -AutomaticStartAction StartVM'ye ek bir sanal disk bağlamak için önce vhdx dosyasını oluşturun:
New-VHD -Path 'C:\VM\new-prx2-drive.vhdx' -SizeBytes 2GB
Ardından sanal makinenize bağlayın:
Add-VMHardDiskDrive -VMName mun-prx2 -Path 'C:\VM\new-prx2-drive.vhdx'PowerShell ile Hyper-V Sanal Makineleri Nasıl Yönetilir?
Bir Hyper-V ana bilgisayarında sanal makinelerin listesini görüntülemek için:
Get-VMKomut, bazı temel özelliklere sahip VM'lerin listesini döndürür. Tüm VM özelliklerini görüntülemek için aşağıdaki komutu çalıştırın:
Get-VM -Name mun-dmz1 | fl *Yalnızca çalışan VM'leri göstermek için:
Get-VM | where {$_.State -eq 'Running'}Bir sanal makine başlatmak için:
Start-VM -Name mun-app01Durdurulan tüm sanal makineleri başlatmak için:
Get-VM | where {$_.State -eq 'Off'} | Start-VMVM'yi kapatın (konuk işletim sisteminde Entegrasyon Hizmetlerini kullanarak doğru kapatma):
Stop-VM -Name mun-app01VM'yi kapatmak için Kapat seçeneği kullanılır:
Stop-VM -Name mun-app01 -TurnOffYanıt vermeyen bir Hyper-V VM'yi nasıl durduracağınızı öğrenin.
ISO dosyasını sanal bir CD/DVD aygıtına bağlayın:
Set-VMDvdDrive -VMName mun-app01 -Path c:\iso\WinSrv2022.isoUSB aygıtını (ortam/sürücü) bir Hyper-V VM'ye yönlendirmek için USB geçidini kullanabilirsiniz.
Tüm VM dosyalarını anında başka bir diske taşımak için aşağıdaki komutu kullanın:
Move-VMStorage mun-app01 -DestinationStoragePath D:\VM\mun-app01Kullanarak bir sanal disk dosyasını genişletebilir veya küçültebilirsiniz.
Resize-VHDcmdlet'i:
Resize-VHD -Path 'C:\VM\mun-fs01.vhdx' -SizeBytes 50GbBir VM'nin kontrol noktasını (anlık görüntüsünü) oluşturmak için:
Get-VM -Name mun-app01| Checkpoint-VM -SnapshotName "Before upgrading SAP"Mevcut kontrol noktalarının bir listesini görüntülemek için:
Get-Vm -Name mun-app01| Get-VMCheckpointBir VM'yi bir kontrol noktasından önceki durumuna geri yüklemek için:
Restore-VMCheckpoint -Name "Before upgrading SAP" -VMName mun-app01 -Confirm:$falseBir anlık görüntüyü kaldırmak için:
Remove-VMCheckpoint -VMName mun-app01 -Name "Before upgrading SAP"Hyper-V'de bir VM'yi dışa aktarma, içe aktarma ve klonlama bu makalede açıklanmaktadır:
Export-VM -Name mun-app01 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentStateHyper-V sanal makinelerini yedeklemek için yerleşik Windows Sunucu Yedeklemesini (WSB) kullanabilirsiniz.
Sanal makinelerin konuk işletim sisteminin IP adreslerini almak için:
Get-VM | Select -ExpandProperty NetworkAdapters | Select VMName, IPAddresses, StatusBir sanal makine konsoluna bağlanmak için:
vmconnect.exe localhost mun-app01Vmbus aracılığıyla doğrudan sanal makinelerin konuk işletim sistemlerine bağlanmak için PowerShell Direct'i kullanabilirsiniz (Windows Server 2016, Windows 10 ve daha yeni sürümlerde mevcuttur). Invoke-Command (komut dosyalarını çalıştırmak için) ve Enter-PSSession'ı (etkileşimli bir PowerShell oturumu çalıştırmak için) kullanın:
Invoke-Command -VMName mun-app01 -ScriptBlock {Get-Process}
Enter-PSSession -VMName mun-app01Dosyaları bir Hyper-V ana bilgisayarından PowerShell Direct kullanarak bir sanal makineye kopyalamak için aşağıdaki komutu kullanın:
$PSSession = New-PSSession -VMName mun-app01 -Credential (Get-Credential)
Copy-Item -ToSession $PSSession -Path E:\ISO\install_image.iso -Destination D:\ISO\Hyper-V Yönetici konsolu gibi grafik araçlarla birlikte Hyper-V ana bilgisayarlarındaki sanal makineleri yerel olarak veya uzaktan (Windows Server Tam GUI veya Sunucu Çekirdeği modlarında, ücretsiz Windows Hyper-V Sunucusunda veya Windows 10'da) yönetmek için PowerShell'i kullanabilirsiniz. veya Windows Yönetici Merkezi.






