使用 PowerShell Direct 管理 Windows 虚拟机
可以从 Windows 10、Windows Server 2016 或 Windows Server 2019 Hyper-V 主机中使用 PowerShell Direct 远程管理 Windows 10、Windows Server 2016 或 Windows Server 2019 虚拟机。 不管 Hyper-V 主机或虚拟机上的网络配置或远程管理设置如何,PowerShell Direct 都允许在虚拟机中管理 Windows PowerShell。 这使得 Hyper-V 管理员能够更简单地自动化虚拟机管理和配置,并为其编写脚本。
可通过两种方法运行 PowerShell Direct:
使用 PSSession cmdlet 创建和退出 PowerShell Direct 会话
使用 Invoke-Command cmdlet 运行脚本或命令
如果要管理较旧的虚拟机,请使用虚拟机连接 (VMConnect) 或为虚拟机配置虚拟网络。
使用 PSSession cmdlet 创建和退出 PowerShell Direct 会话
在 Hyper-V 主机上,以管理员身份打开 Windows PowerShell。
使用 Enter-PSSession cmdlet 连接到虚拟机。 通过使用虚拟机名称或 GUID 运行以下命令之一来创建会话:
Enter-PSSession -VMName <VMName>
Enter-PSSession -VMId <VM GUID>
键入虚拟机的凭据。
运行所需的任意命令。 这些命令在与其创建了会话的虚拟机上运行。
完成后,使用 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 管理员角色并获取主机上本地运行且已启动的虚拟机的列表。