這一篇是盡可能使用 windows powershell 操作 hyper-v 來建立虛擬機器的紀錄
環境
Host - Windows11 Pro 23H2
※ Hyper-V 為 windows pro 版本以上內建的虛擬機器軟體,可透過啟用 windows 的功能來開始使用,如果是購買一般筆電,通常只有 Home 版 windows,可能就沒有這個方便的虛擬軟體囉
前置準備
windows 的 iso 安裝檔案(我是直接用 windows 11 24H2 的映像檔)
建立虛擬機器腳本
微軟的範例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Set VM Name, Switch Name, and Installation Media Path. $VMName = 'TESTVM' $Switch = 'External VM Switch' $InstallMedia = 'C:\Users\Administrator\Desktop\en_windows_10_enterprise_x64_dvd_6851151.iso'
# Create New Virtual Machine New-VM-Name$VMName-MemoryStartupBytes2147483648-Generation2-NewVHDPath"D:\Virtual Machines\$VMName\$VMName.vhdx"-NewVHDSizeBytes53687091200-Path"D:\Virtual Machines\$VMName"-SwitchName$Switch
# Add DVD Drive to Virtual Machine Add-VMScsiController-VMName$VMName Add-VMDvdDrive-VMName$VMName-ControllerNumber1-ControllerLocation0-Path$InstallMedia
# Mount Installation Media $DVDDrive = Get-VMDvdDrive-VMName$VMName
# Configure Virtual Machine to Boot from DVD Set-VMFirmware-VMName$VMName-FirstBootDevice$DVDDrive
# Set VM Name, Switch Name, and Installation Media Path. $VMName = '{虛擬機器名稱}' $Switch = '{你要用的虛擬網卡名稱,某個世代之後都有個Default Switch,都設定好用Host網路了,非常方便}' $InstallMedia = '{你要用來安裝windows的iso檔案完整路徑}'
# Create New Virtual Machine New-VM-Name$VMName-MemoryStartupBytes8GB -Generation2-NewVHDPath"{放磁碟的資料夾}\$VMName.vhdx"-NewVHDSizeBytes200GB -Path"{放虛擬機的資料夾}"-SwitchName$Switch
# Add DVD Drive to Virtual Machine Add-VMScsiController-VMName$VMName Add-VMDvdDrive-VMName$VMName-ControllerNumber1-ControllerLocation0-Path$InstallMedia
# Mount Installation Media $DVDDrive = Get-VMDvdDrive-VMName$VMName
# Configure Virtual Machine to Boot from DVD Set-VMFirmware-VMName$VMName-FirstBootDevice$DVDDrive
以為這樣就結束了嗎? 並沒有,因為拿來使用的 iso 檔案是 windows11,如果有關注 windows 迭代的話,就知道還有個萬惡的 TPM 模組要開才能安裝 不然在安裝的時候就會跳出警告說不能裝囉~
所以還要再補上一段設定是把 TPM 給啟用(GUI 的路徑是開啟該 VM 的設定,點開硬體下的安全性,在加密支援的地方,啟用信賴平台模組打勾)
# Set VM Name, Switch Name, and Installation Media Path. $VMName = '{虛擬機器名稱}' $Switch = '{你要用的虛擬網卡名稱,某個世代之後都有個Default Switch,都設定好用Host網路了,非常方便}' $InstallMedia = '{你要用來安裝windows的iso檔案完整路徑}'
# Create New Virtual Machine New-VM-Name$VMName-MemoryStartupBytes8GB -Generation2-NewVHDPath"{放磁碟的資料夾}\$VMName.vhdx"-NewVHDSizeBytes200GB -Path"{放虛擬機的資料夾}"-SwitchName$Switch
# Add DVD Drive to Virtual Machine Add-VMScsiController-VMName$VMName Add-VMDvdDrive-VMName$VMName-ControllerNumber1-ControllerLocation0-Path$InstallMedia
# Mount Installation Media $DVDDrive = Get-VMDvdDrive-VMName$VMName
# Configure Virtual Machine to Boot from DVD Set-VMFirmware-VMName$VMName-FirstBootDevice$DVDDrive