Hyper-V と Windows PowerShell の使用

Hyper-V の展開、仮想マシンの作成、仮想マシンの管理の基本を確認できたので、次は PowerShell でこれらの作業の大半を自動化する方法について説明します。

HYPER-V のコマンドの一覧を返す

  1. Windows の [スタート] ボタンを選んで、「PowerShell」と入力します。

  2. 次のコマンドを実行すると、Hyper-V PowerShell モジュールで利用できる PowerShell コマンドの検索可能な一覧が表示されます。

Get-Command -Module hyper-v | Out-GridView

次のような一覧になります。

[コマンドの種類]、[名前]、[バージョン]、および [ソース] フィールドを示す Out Grid View のスクリーンショット。

  1. 特定の PowerShell コマンドの詳細を確認するには、Get-Help を使用します。 たとえば、次のコマンドを実行すると、Get-VM Hyper-V コマンドに関する情報が返されます。

    Get-Help Get-VM
    

    コマンドを構築する方法、必須と任意のパラメーター、および使用できるエイリアスが出力されます。

    コマンドを構成する方法の出力を示す、管理者 Windows Power Shell 画面のスクリーンショット。

仮想マシンの一覧を返す

仮想マシンの一覧を返すには、Get-VM コマンドを使用します。

  1. PowerShell で次のコマンドを実行します。

    Get-VM
    

    次のような出力が表示されます。

    Get VM を入力した後の出力を示す、管理者 Windows Power Shell 画面のスクリーンショット。

  2. 電源がオンになっている仮想マシンのみの一覧を返す場合、Get-VM コマンドにフィルターを追加します。 Where-Object コマンドを使用してフィルターを追加できます。 フィルター処理について詳しくは、Where-Object の使用に関する記事をご覧ください。

    Get-VM | where {$_.State -eq 'Running'}
    
  3. 電源オフ状態のすべての仮想マシンの一覧を表示するには、次のコマンドを実行します。 このコマンドは、手順 2 のコマンドのコピーであり、フィルターが 'Running' から 'Off' に変更されています。

    Get-VM | where {$_.State -eq 'Off'}
    

仮想マシンの起動とシャット ダウン

  1. 特定の仮想マシンを起動するには、仮想マシンの名前を指定して次のコマンドを実行します。

    Start-VM -Name <virtual machine name>
    
  2. 現在電源がオフになっているすべての仮想マシンを起動するには、そのようなマシンの一覧を取得し、Start-VM コマンドに対して一覧を渡します。

    Get-VM | where {$_.State -eq 'Off'} | Start-VM
    
  3. 実行中のすべての仮想マシンをシャットダウンするには、次のコマンドを実行します。

Get-VM | where {$_.State -eq 'Running'} | Stop-VM

仮想マシンのチェックポイントを作成する

PowerShell を使用してチェックポイントを作成するには、Get-VM コマンドを使用して仮想マシンを選択し、それを Checkpoint-VM コマンドに渡します。 最後に、-SnapshotName を使用してチェックポイントに名前を付けます。 完全なコマンドは次のようになります。

Get-VM -Name <VM Name> | Checkpoint-VM -SnapshotName <name for snapshot>

新しい仮想マシンを作成します

次の例は、PowerShell Integrated Scripting Environment (ISE) で新しい仮想マシンを作成する方法を示しています。 これは単純な例であり、拡張して PowerShell 機能やより高度な VM 展開を追加できます。

  1. PowerShell ISE を開くには、[スタート] をクリックし、「PowerShell ISE」と入力します。

  2. 次のコードを実行し、仮想マシンを作成します。 New-VM コマンドの詳細については、New-VM ドキュメントを参照してください。

     $VMName = "VMNAME"
    
     $VM = @{
         Name = $VMName
         MemoryStartupBytes = 2147483648
         Generation = 2
         NewVHDPath = "C:\Virtual Machines\$VMName\$VMName.vhdx"
         NewVHDSizeBytes = 53687091200
         BootDevice = "VHD"
         Path = "C:\Virtual Machines\$VMName"
         SwitchName = (Get-VMSwitch).Name
     }
    
     New-VM @VM
    

まとめと参照

このドキュメントはいくつかのサンプル シナリオと同様に、HYPER-V の PowerShell モジュールに、エクスプ ローラーにいくつかの簡単な手順を説明しました。 Hyper-V PowerShell モジュールの詳細については、「Windows PowerShell リファレンスの Hyper-V コマンドレット」を参照してください。