Windows PowerShell を使用して Azure Stack HCI 上の VM を管理する

適用対象: Azure Stack HCI バージョン 23H2 および 22H2。Windows Server 2022、Windows Server 2019

この記事では、Windows PowerShell を使用して Azure Stack HCI で仮想マシン (VM) を作成および管理する方法について説明します。

Note

Azure Stack HCI バージョン 23H2 で VM を作成および管理する推奨される方法は、 Azure Arc コントロール プレーンを使用することです。 ただし、この記事で説明する機能は Azure Arc によってまだ提供されていないため、以下の説明に従って Windows Admin Center または PowerShell を使用できます。 この方法で作成された VM は、Arc 対応 VM ではありません。 Azure Arc コントロール プレーンの管理性が制限され、Azure Update Manager を無料で使用できないなど、Azure ハイブリッド特典が少なくなります。

PowerShell を使用した VM の管理について

通常、VM は、クラスター内のホスト サーバーではなく、リモート コンピューターから管理します。 このリモート コンピューターは、管理コンピューターと呼ばれます。

管理コンピューターから PowerShell コマンドを実行する場合は、 -ComputerName パラメーターに、管理しているホスト サーバーの名前を含めます。 NetBIOS 名、IP アドレス、および完全修飾ドメイン名を指定できます。

PowerShell を使用した VM の管理に関する完全なリファレンス ドキュメントについては、 Hyper-V リファレンスを参照してください。

VM の作成

新しい VM を作成するには、New-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>

次の例では、4 GB のメモリを備えた第 2 世代仮想マシンを作成します。 これは、現在のディレクトリの VMs\Win10.vhdx フォルダーから起動し、ExternalSwitch という名前の仮想スイッチを使用します。 仮想マシンの構成ファイルは、VMData フォルダーに格納されます。

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

仮想ハード ディスクを指定するには、次のパラメーターを使用します。

新しい仮想ハード ディスクを使用して仮想マシンを作成するには、次に示すように、上記の例の -VHDPath パラメーターを -NewVHDPath に置き換え、-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 を起動および停止する

VM を起動または停止するには、Start-VMStop-VM のコマンドを使用します。 詳細については、「Start-VM」および「Stop-VM」のリファレンス ドキュメントを参照してください。

次の例は、VM1 という名前の VM を起動する方法を示しています。

Start-VM -Name VM1 -ComputerName Server1

次の例は、TestVM という名前の VM をシャットダウンする方法を示しています。

Stop-VM -Name VM1 -ComputerName Server1

VM の移動

Move-VM コマンドレットは、VM を別のサーバーに移動します。 詳細については、「Move-VM」のリファレンス ドキュメントを参照してください。

次の例は、VM が Server1 の SMB 共有に格納されている場合に、VM を Server2 に移動する方法を示しています。

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2

次の例は、Server1 から Server2 に VM を移動し、その VM に関連付けられているすべてのファイルをリモート コンピューターの D:\VM_name に移動する方法を示しています。

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2 -IncludeStorage -DestinationStoragePath D:\VM_name

VM をインポートまたはエクスポートする

Import-VMExport-VM のコマンドレットで、VM のインポートとエクスポートを行います。 次にいくつかの例を示します。 詳細については、「Import-VM」と「Export-VM」のリファレンス ドキュメントを参照してください。

次の例は、VM をその構成ファイルからインポートする方法を示しています。 VM はインプレースで登録されているため、そのファイルはコピーされません。

Import-VM -ComputerName Server1 -Name VM1 -Path 'C:\<vm export path>\2B91FEB3-F1E0-4FFF-B8BE-29CED892A95A.vmcx'

次の例では、D ドライブのルートに VM をエクスポートします。

Export-VM -ComputerName Server1 -Name VM1 -Path D:\

VM の名前を変更する

VM の名前を変更するには、Rename-VM コマンドレットを使用します。 詳細については、「Rename-VM」のリファレンス ドキュメントを参照してください。

次の例では、VM1 の名前を VM2 に変更し、名前を変更した仮想マシンを表示します。

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

VM チェックポイントを作成する

VM のチェックポイントを作成するには、Checkpoint-VM コマンドレットを使用します。 詳細については、「Checkpoint-VM」のリファレンス ドキュメントを参照してください。

次の例では、Test という名前の VM に BeforeInstallingUpdates という名前のチェックポイントを作成します。

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

VM 用の VHD を作成する

VM の新しい VHD を作成するには、New-VHD コマンドレットを使用します。 使用方法の詳細については、 New-VHD リファレンス ドキュメントを参照してください。

VM にネットワーク アダプターを追加する

VM に仮想ネットワーク アダプターを追加するには、Add-VMNetworkAdapter コマンドレットを使用します。 次にいくつかの例を示します。 その使用方法の詳細については、「Add-VMNetworkAdapter」のリファレンス ドキュメントを参照してください。

次の例では、VM1 という名前の仮想マシンに Redmond NIC1 という名前の仮想ネットワーク アダプターを追加します。

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -Name "Redmond NIC1"

次の例では、VM1 という名前の仮想マシンに仮想ネットワーク アダプターを追加し、Network という名前の仮想スイッチにそれを接続します。

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -SwitchName Network

VM の仮想スイッチを作成する

VM ホスト上の新しい仮想スイッチの作成には、New-VMSwitch コマンドレットを使用します。 その使用方法の詳細については、「New-VMSwitch」のリファレンス ドキュメントを参照してください。

次の例では、"QoS Switch" という新しいスイッチを作成します。これは、Wired Ethernet Connection 3 というネットワーク アダプターにバインドされ、重みベースの最小帯域幅をサポートします。

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

VM のメモリを設定する

VM のメモリを構成するには、Set-VMMemory コマンドレットを使用します。 その使用方法の詳細については、「Set-VMMemory」のリファレンス ドキュメントを参照してください。

次の例では、VM1 という名前の VM の動的メモリを有効にし、その最小、起動、最大の各メモリ、そのメモリ優先度、およびそのバッファーを設定します。

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

VM の仮想プロセッサを設定する

VM の仮想プロセッサを構成するには、Set-VMProcessor コマンドレットを使用します。 その使用方法の詳細については、「Set-VMProcessor」のリファレンス ドキュメントを参照してください。

次の例では、VM1 という名前の VM を、2 つの仮想プロセッサ、予約 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 とそのリソースを削除するには、まず、次のコマンドレットを使用して、サーバー上のすべての VM を検索します。

Get-VM -Name VM1

次に、サーバーから削除する VM ごとに次のコマンドレットを実行します。

Remove-VM -Name VM1

クラスターから VM を削除する

クラスターから VM とそのリソースを削除するには、最初に次のコマンドレットを使用して VM とそのリソースを検索します。

Get-ClusterGroup

次に、クラスターから削除する VM ごとに次のコマンドレットを実行します。

Remove-ClusterGroup -RemoveResources -Name VM1

次のステップ

Windows Admin Center を使用して、VM を作成および管理することもできます。 詳細については、「Windows Admin Center」を参照してください。