使用 Windows PowerShell 管理 Azure 本機上的 VM
適用於:Azure Local 2311.2 和更新版本;Windows Server 2022、Windows Server 2019
本文說明如何使用 Windows PowerShell 在 Azure 本機上建立和管理虛擬機(VM)。
注意
在 Azure 本機上建立和管理虛擬機器的建議方式,是使用 Azure Arc 控制平面。 不過,由於本文所述的功能尚未由 Azure Arc 提供,因此您可以使用 Windows Admin Center 或 PowerShell,如下所述。 請注意,以這種方式建立的 VM 不會啟用 Arc 的 VM。 Azure Arc 控制平面的管理能力有限,且 Azure Hybrid Benefits 較少,例如不免費使用 Azure Update Manager。
關於使用 PowerShell 管理 VM
一般而言,您會從遠端電腦管理 VM,而不是在 Azure 本機的主電腦上管理 VM。 此遠端電腦稱為管理電腦。
從管理計算機執行 PowerShell 命令時,請包含 -ComputerName
您要管理之主電腦名稱的參數。 允許 NetBIOS 名稱、IP 位址和完整功能變數名稱。
如需使用PowerShell管理 VM 的完整參考檔,請參閱 Hyper-V 參考。
建立 VM
Cmdlet New-VM
可用來建立新的 VM。 如需詳細的使用方式,請參閱 New-VM 參考檔。
以下是使用現有虛擬硬碟建立新 VM 時可指定的設定,其中:
-Name 是您為所建立虛擬機器提供的名稱。
-MemoryStartupBytes 是虛擬機啟動時可用的記憶體數量。
-BootDevice 是虛擬機啟動時開機的裝置。 這通常是虛擬硬碟(VHD)、DVD 型開機的.iso檔案,或網路開機的網路適配器(NetworkAdapter)。
-VHDPath 是您要使用的虛擬機器磁碟路徑。
-Path 是儲存虛擬機器設定檔的路徑。
-Generation 是虛擬機器世代。 針對 VHD 使用第 1 代,針對 VHDX 使用第 2 代。
-SwitchName 是您想要虛擬機用來連線到其他虛擬機或網路之虛擬交換器的名稱。 使用 Get-VMSwitch 取得虛擬交換器的名稱。 例如:
建立名為 VM1 的 VM,如下所示的完整命令:
New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -SwitchName <Switch name>
下一個範例會建立具有 4GB 記憶體的第 2 代虛擬機。 它會從目前目錄中的 VM\Win10.vhdx 資料夾開機,並使用名為 ExternalSwitch 的虛擬交換器。 虛擬機器設定檔會儲存在 VMData 資料夾中。
New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Win10.vhdx -Path .\VMData -Generation 2 -SwitchName ExternalSwitch
下列參數可用來指定虛擬硬碟。
若要使用新的虛擬硬碟建立虛擬機,請使用 -NewVHDPath 取代上述範例中的 -VHDPath 參數,並新增 -NewVHDSizeBytes 參數,如下所示:
New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win10.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -SwitchName ExternalSwitch
若要使用開機至操作系統映像的新虛擬磁碟建立虛擬機,請參閱在 Windows 10 上建立 Hyper-V 的虛擬機逐步解說中的 PowerShell 範例。
取得 VM 清單
下列範例會傳回 Server1 上所有 VM 的清單。
Get-VM -ComputerName Server1
下列範例會使用 Where-Object
命令新增篩選,以傳回計算機上所有執行中 VM 的清單。 如需詳細資訊,請參閱 使用 Where-Object 檔。
Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Running"
下一個範例會傳回計算機上所有關機 VM 的清單。
Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Off"
啟動和停止 VM
Start-VM
使用和 Stop-VM
命令來啟動或停止 VM。 如需詳細資訊,請參閱 Start-VM 和 Stop-VM 參考檔。
下列範例示範如何啟動名為 VM1 的 VM:
Start-VM -Name VM1 -ComputerName Server1
下列範例示範如何關閉名為 TestVM 的 VM:
Stop-VM -Name VM1 -ComputerName Server1
移動 VM
Cmdlet 會將 Move-VM
VM 移至不同的電腦。 如需詳細資訊,請參閱 Move-VM 參考檔。
下列範例示範如何將 VM 移至 Server2,當 VM 儲存在 Server1 上的 SMB 共用上:
Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2
下列範例示範如何將 VM 從 Server1 移至 Server2,並將與 VM 相關聯的所有檔案移至遠端電腦上的 D:\VM_name:
Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2 -IncludeStorage -DestinationStoragePath D:\VM_name
匯入或匯出 VM
Import-VM
和 Export-VM
Cmdlet 會匯入和導出 VM。 以下顯示幾個範例。 如需詳細資訊,請參閱 Import-VM 和 Export-VM 參考檔。
下列範例示範如何從其組態檔匯入 VM。 VM 會就地註冊,因此不會複製其檔案:
Import-VM -ComputerName Server1 -Name VM1 -Path 'C:\<vm export path>\2B91FEB3-F1E0-4FFF-B8BE-29CED892A95A.vmcx'
下列範例會將 VM 匯出至 D 磁碟驅動器的根目錄:
Export-VM -ComputerName Server1 -Name VM1 -Path D:\
重新命名 VM
Cmdlet Rename-VM
可用來重新命名 VM。 如需詳細資訊,請參閱 Rename-VM 參考檔。
下列範例會將 VM1 重新命名為 VM2,並顯示已重新命名的 VM:
Rename-VM -ComputerName Server1 -Name VM1 -NewName VM2
建立 VM 檢查點
Cmdlet Checkpoint-VM
可用來建立 VM 的檢查點。 如需詳細資訊,請參閱 Checkpoint-VM 參考檔。
下列範例會為名為Test的 VM 建立名為 BeforeInstallingUpdates 的檢查點。
Checkpoint-VM -ComputerName Server1 -Name VM1 -SnapshotName BeforeInstallingUpdates
建立 VM 的 VHD
Cmdlet New-VHD
可用來為 VM 建立新的 VHD。 如需如何使用的詳細資訊,請參閱 New-VHD 參考檔。
將網路適配器新增至 VM
Cmdlet Add-VMNetworkAdapter
可用來將虛擬網路適配器新增至 VM。 以下顯示幾個範例。 如需如何使用的詳細資訊,請參閱 Add-VMNetworkAdapter 參考檔。
下列範例會將名為 Redmond NIC1 的虛擬網路適配器新增至名為 VM1 的虛擬機:
Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -Name "Redmond NIC1"
此範例會將虛擬網路適配器新增至名為 VM1 的虛擬機,並將它連線至名為 Network 的虛擬交換器:
Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -SwitchName Network
建立 VM 的虛擬交換器
Cmdlet New-VMSwitch
用於 VM 主機上的新虛擬交換器。 如需如何使用的詳細資訊,請參閱 New-VMSwitch 參考檔。
下列範例會建立名為 「QoS switch」 的新交換器,其系結至名為有線乙太網路連線 3 的網路適配器,並支援以權數為基礎的最小頻寬。
New-VMSwitch "QoS Switch" -NetAdapterName "Wired Ethernet Connection 3" -MinimumBandwidthMode Weight
設定 VM 的記憶體
Cmdlet Set-VMMemory
可用來設定 VM 的記憶體。 如需如何使用的詳細資訊,請參閱 Set-VMMemory 參考檔。
下列範例會在名為 VM1 的 VM 上啟用易失記憶體、設定其最小、啟動和最大記憶體、記憶體優先順序,以及其緩衝區。
Set-VMMemory -ComputerName Server1 -Name VM1 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25
設定 VM 的虛擬處理器
Cmdlet Set-VMProcessor
可用來設定 VM 的虛擬處理器。 如需如何使用的詳細資訊,請參閱 Set-VMProcessor 參考檔。
下列範例會設定名為 VM1 的 VM,其中包含兩個虛擬處理器、保留 10%、限制為 75%,以及相對權數為 200。
Set-VMProcessor -ComputerName Server1 -Name VM1 -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200
移除 VM
透過PowerShell 移除或刪除 VM 會刪除 VM 的組態檔,但不會刪除相關聯的虛擬硬碟。 如果您想要刪除包含所有檔案的 VM,包括虛擬硬碟,請考慮使用 Windows Admin Center。
刪除 VM 之前,請確定 VM 為 OFF。 請記住,刪除 VM 會無法復原地刪除組態檔。
從電腦移除 VM
若要從機器中移除或刪除 VM 及其資源,請先使用下列 Cmdlet 尋找電腦上的所有 VM:
Get-VM -Name VM1
然後,針對您想要從電腦移除的每個 VM 執行下列 Cmdlet:
Remove-VM -Name VM1
從系統移除 VM
若要從系統移除或刪除 VM 及其資源,請先使用下列 Cmdlet 尋找它們:
Get-ClusterGroup
然後,針對您想要從系統移除的每個 VM 執行下列 Cmdlet:
Remove-ClusterGroup -RemoveResources -Name VM1
下一步
您也可以使用 Windows Admin Center 建立和管理 VM。 如需詳細資訊,請參閱 Windows Admin Center。