PowerShell Direct で Windows 仮想マシンを管理する

適用対象: Windows Server 2022、Windows 10、Windows Server 2016、Windows Server 2019

PowerShell Direct を利用し、Windows 10、Windows Server 2016 または Windows Server 2019 仮想マシンを Windows 10、Windows Server 2016 または Windows Server 2019 Hyper-V ホストからリモート管理できます。 PowerShell のダイレクトでは、ネットワークの構成またはいずれかの Hyper-V ホスト上のリモート管理の設定に関係なく、virtual machine または仮想マシン内の Windows PowerShell の管理ができます。 これにより、HYPER-V の管理者を自動化し、仮想マシン管理と構成スクリプトを作成しやすくなります。

PowerShell ダイレクトを実行するには、次の 2 つの方法があります。

  • 作成し、PSSession コマンドレットを使用して、直接の PowerShell セッションを終了します。

  • Invoke-command コマンドレットにスクリプトまたはコマンドを実行します。

以前の仮想マシンを管理している場合は、仮想マシン接続 (VMConnect) を使用するか、仮想マシン用の仮想ネットワークを構成します

作成し、PSSession コマンドレットを使用して、直接の PowerShell セッションを終了します。

  1. Hyper-V ホストで、管理者として Windows PowerShell を開きます。

  2. Enter-PSSession コマンドレットを使用し、仮想マシンに接続します。 仮想マシンの名前または GUID を使用してセッションを作成するには、次のコマンドのいずれかを実行します。

    Enter-PSSession -VMName <VMName>
    
    Enter-PSSession -VMId <VM GUID>
    
  3. 仮想マシンの資格情報を入力します。

  4. 必要がある任意のコマンドを実行します。 これらのコマンドは、使用してセッションを作成した仮想マシンで実行します。

  5. 完了したら、Exit-PSSession を使用してセッションを終了します。

    Exit-PSSession
    

Invoke-command コマンドレットにスクリプトまたはコマンドを実行します。

Invoke-Command コマンドレットを使用して、あらかじめ設定された一連のコマンドを仮想マシン上で実行できます。 仮想マシン名が PSTest であり、実行するスクリプト (foo.ps1) が C:/ ドライブ上のスクリプト フォルダー内にある場合に、Invoke-Command コマンドレットを使用する方法の例を以下に示します。

Invoke-Command -VMName PSTest  -FilePath C:\script\foo.ps1

単一のコマンドを実行するには、-ScriptBlock パラメーターを使用します。

Invoke-Command -VMName PSTest  -ScriptBlock { cmdlet }

PowerShell を使用して何が必要なでしょうか。

仮想マシンで PowerShell ダイレクト セッションを作成するには

  • 仮想マシンでは、ホスト上でローカルに実行する必要があり、起動します。

  • HYPER-V の管理者として、ホスト コンピューターには、ログインする必要があります。

  • 仮想マシンの有効なユーザー資格情報を指定する必要があります。

  • ホスト オペレーティング システムでは少なくとも Windows 10 または Windows Server 2016 を実行する必要があります。

  • 仮想マシンでは少なくとも Windows 10 または Windows Server 2016 を実行する必要があります。

Get-VM コマンドレットを使用すると、使用している資格情報に Hyper-V 管理者ロールが与えられていることを確認し、ホスト上で起動し、ローカル実行されている仮想マシンの一覧を取得できます。

参照

Enter-PSSessionExit-PSSessionInvoke-Command