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-VM
と Stop-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-VM
と Export-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」を参照してください。