使用 Windows PowerShell 管理 Azure Stack HCI 上的 VM

適用於:Azure Stack HCI 21H2 和 20H2 版、Windows Server 2022、Windows Server 2019

Windows PowerShell 可以用來建立和管理 Azure Stack HCI 上的虛擬機器 (VM)。

您通常會從遠端電腦管理 VM,而不是在叢集中的主機伺服器上管理。 這部遠端電腦稱為管理電腦。

注意

從管理電腦執行 PowerShell 命令時,請將 -ComputerName 參數包含在您要管理之主機伺服器的名稱中。 允許 NetBIOS 名稱、IP 位址與完整網域名稱。

如需使用 PowerShell 管理 VM 的完整參考文件,請參閱 Hyper-V 參考

建立 VM

New-VM Cmdlet 可用來建立新的 VM。 如需詳細使用方式,請參閱 New-VM 參考文件。

以下是您在使用現有的虛擬硬碟建立新 VM 時可指定的設定,其中:

  • -Name 是您為要建立的虛擬機器提供的名稱。

  • -MemoryStartupBytes 是虛擬機器在啟動時可用的記憶體數量。

  • -BootDevice 是虛擬機器啟動時的開機裝置。 這通常是虛擬硬碟 (VHD)、用於 DVD 開機的 .iso 檔案,或用於網路開機的網路介面卡 (NetworkAdapter)。

  • -VHDPath 是您要使用的虛擬機器磁碟所在的路徑。

  • -Path 是用來儲存虛擬機器組態檔的路徑。

  • -Generation 是虛擬機器的世代。 VHD 應使用第 1 代,VHDX 則使用第 2 代。

  • -Switch 是您要讓虛擬機器用來連線至其他虛擬機器或網路的虛擬交換器名稱。 使用 Get-VMSwitch 可取得虛擬交換器的名稱。 例如:

以下是建立名為 VM1 的 VM 時所使用的完整命令:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -Switch <SwitchName>

下一個範例會建立具有 4GB 記憶體的第 2 代虛擬機器。 該機器會從現行目錄中的 VMs\Win10.vhdx 資料夾開機,並使用名為 ExternalSwitch 的虛擬交換器。 虛擬機器組態檔會儲存在 VMData 資料夾中。

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Win10.vhdx -Path .\VMData -Generation 2 -Switch ExternalSwitch

下列參數可用來指定虛擬硬碟。

若要以新的虛擬硬碟建立虛擬機器,請將上述範例中的 -VHDPath 參數取代為 -NewVHDPath,並新增 -NewVHDSizeBytes 參數,如下所示:

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win10.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -Switch 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-VMStop-VM 命令分別可啟動或停止 VM。 如需詳細資訊,請參閱 Start-VMStop-VM 參考文件。

下列範例說明如何啟動名為 VM1 的 VM:

Start-VM -Name VM1 -ComputerName Server1

下列範例說明如何關閉名為 TestVM 的 VM:

Stop-VM -Name VM1 -ComputerName Server1

移動 VM

Move-VM Cmdlet 會將 VM 移至不同的伺服器。 如需詳細資訊,請參閱 Move-VM 參考文件。

下列範例說明在 VM 儲存於 Server1 上的 SMB 共用時,如何將該 VM 移至 Server2:

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

Rename-VM Cmdlet 可用來重新命名 VM。 如需詳細資訊,請參閱 Rename-VM 參考文件。

下列範例會將 VM1 重新命名為 VM2,並顯示重新命名的虛擬機器:

Rename-VM -ComputerName Server1 -Name VM1 -NewName VM2

建立 VM 檢查點

Checkpoint-VM Cmdlet 可用來建立 VM 的檢查點。 如需詳細資訊,請參閱 Checkpoint-VM 參考文件。

下列範例會為名為 Test 的 VM 建立名為 BeforeInstallingUpdates 的檢查點。

Checkpoint-VM -ComputerName Server1 -Name VM1 -SnapshotName BeforeInstallingUpdates

建立 VM 的 VHD

New-VHD Cmdlet 可用來為 VM 建立新的 VHD。 如需其使用方式的詳細資訊,請參閱 New-VHD 參考文件。

下列範例會採用 VHDX 格式,建立大小為 10 GB 的動態虛擬硬碟。 由於未指定任何類型,因此副檔名會決定要使用的動態格式和預設類型。

Get-ClusterGroup

將網路介面卡新增至 VM

Add-VMNetworkAdapter Cmdlet 可用來將虛擬網路介面卡新增至 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 的虛擬交換器

New-VMSwitch Cmdlet 可用來新增 VM 主機上的虛擬交換器。 如需其使用方式的詳細資訊,請參閱 New-VMSwitch 參考文件。

下列範例會建立名為 "QoS switch" 的新交換器,並將其繫結至名為 Wired Ethernet Connection 3 的網路介面卡,以支援以權數為基礎的最小頻寬。

New-VMSwitch "QoS Switch" -NetAdapterName "Wired Ethernet Connection 3" -MinimumBandwidthMode Weight

設定 VM 的記憶體

Set-VMMemory Cmdlet 可用來設定 VM 的記憶體。 如需其使用方式的詳細資訊,請參閱 Set-VMMemory 參考文件。

下列範例會在名為 VM1 的 VM 上啟用動態記憶體,並設定其記憶體下限、啟動記憶體及記憶體上限、其記憶體優先順序,以及其緩衝區。

Set-VMMemory -ComputerName Server1 -Name VM1 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

設定 VM 的虛擬處理器

Set-VMProcessor Cmdlet 可用來設定 VM 的虛擬處理器。 如需其使用方式的詳細資訊,請參閱 Set-VMProcessor 參考文件。

下列範例會設定名為 VM1 的 VM,具有兩個虛擬處理器、10% 的保留、75% 的限制,以及相對權數 200。

Set-VMProcessor -ComputerName Server1 -Name VM1 -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

移除 VM

若要移除或刪除 VM 及其資源,請先使用下列 Cmdlet 來尋找:

Get-ClusterGroup

然後,針對您想要從叢集中移除的每個 VM 執行下列 Cmdlet:

Remove-ClusterGroup -RemoveResources -Name VM1

後續步驟

您也可以使用 Windows 系統管理中心來建立和管理 VM。 如需詳細資訊,請參閱 Windows 系統管理中心