使用 PowerShell Direct 管理 Windows 虛擬機器

適用於:Windows Server 2022、Windows 10、Windows Server 2016、Windows Server 2019

您可以使用 PowerShell Direct,從 Windows 10、Windows Server 2016 或 Windows Server 2019 Hyper-V 主機遠端管理 Windows 10、Windows Server 2016 或 Windows Server 2019 虛擬機器。 使用 PowerShell Direct 可在虛擬機器內運用 Windows PowerShell 管理,無論在 Hyper-V 主機上或虛擬機器上的網路設定或遠端管理設定為何。 這讓 Hyper-V 系統管理員更容易用指令碼自動化虛擬機器的管理和設定。

有兩種方式可以執行 PowerShell Direct:

  • 使用 PSSession Cmdlet 建立和結束 PowerShell Direct 工作階段

  • 使用 Invoke-Command Cmdlet 執行指令碼或命令

如果您管理的是較舊的虛擬機器,請使用虛擬機器連線 (VMConnect),或是設定虛擬機器的虛擬網路

使用 PSSession Cmdlet 建立和結束 PowerShell Direct 工作階段

  1. 在 Hyper-V 主機上,以系統管理員身分開啟 Windows PowerShell。

  2. 使用 Enter-PSSession Cmdlet 連線至虛擬機器。 使用虛擬機器名稱或 GUID,執行下列命令之一來建立工作階段:

    Enter-PSSession -VMName <VMName>
    
    Enter-PSSession -VMId <VM GUID>
    
  3. 輸入您的虛擬機器認證。

  4. 執行您需要執行的命令。 這些命令會在您用來建立工作階段的虛擬機器上執行。

  5. 完成後,請使用 exit-PSSession 關閉工作階段。

    Exit-PSSession
    

使用 Invoke-Command Cmdlet 執行指令碼或命令

您可以使用 Invoke-Command Cmdlet,在虛擬機器上執行一組預先決定的命令。 以下是如何使用 Invoke-Command Cmdlet 的範例,其中 PSTest 是虛擬機器名稱,要執行的指令碼 (foo.ps1) 位在 C:/ 磁碟機的指令碼資料夾:

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

若要執行單一命令,請使用 -ScriptBlock 參數:

Invoke-Command -VMName PSTest  -ScriptBlock { cmdlet }

使用 PowerShell Direct 的必要條件為何?

若要在虛擬機器上建立 PowerShell Direct 工作階段,

  • 虛擬機器必須在本機主機上執行和啟動。

  • 您必須以 Hyper-V 系統管理員身分登入主機電腦。

  • 您必須提供虛擬機器的有效使用者認證。

  • 主機作業系統必須至少執行 Windows 10 或 Windows Server 2016。

  • 虛擬機器必須至少執行 Windows 10 或 Windows Server 2016。

您可以使用 Get-VM Cmdlet 確認所使用認證是否具備 Hyper-V 系統管理員角色,並取得在本機主機上執行及啟動的虛擬機器清單。

另請參閱

Enter-PSSessionExit-PSSessionInvoke-Command