共用方式為


使用 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-VMStop-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-VMExport-VM Cmdlet 會匯入和導出 VM。 以下顯示幾個範例。 如需詳細資訊,請參閱 Import-VMExport-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