从Hyper-V宿主机内虚拟机远程连接Hyper-V服务的问题咨询
问题1答复
不需要在VM1上安装完整的Hyper-V管理工具,你已经安装的Hyper-V PowerShell模块本身就覆盖了远程查询所需的全部命令组件。但你必须建立VM1与Hyper-V宿主机的可信连接、且使用有权限访问宿主机Hyper-V服务的账号执行命令,才能获取其他虚拟机的相关信息。
直接在VM1的PowerShell中执行命令时添加-ComputerName参数指向宿主机即可,查询所有虚拟机快照的示例命令如下:
Get-VMSnapshot -ComputerName 【替换为你的Hyper-V宿主机IP/主机名】 -VMName *
注意:该方案需要提前在Hyper-V宿主机端放行WMI远程访问相关的防火墙规则,否则会触发连接失败报错。
问题2答复
该方案完全可行,是生产环境中常用的跨主机Hyper-V运维方案,只要满足VM1与Hyper-V宿主机网络连通、权限配置正确两个前提即可使用,操作步骤如下:
- 第一步:在Hyper-V宿主机上以管理员身份打开PowerShell,启用PowerShell远程服务并放行对应防火墙规则:
Enable-PSRemoting -Force - 第二步:如果是工作组环境(非域环境),需要先在VM1上将宿主机添加到WinRM信任列表:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 【替换为你的Hyper-V宿主机IP/主机名】 -Force - 第三步:在VM1上建立与宿主机的远程PowerShell会话,执行查询操作:
# 建立远程会话,弹窗输入有宿主机Hyper-V管理权限的账号密码 $hypervSession = New-PSSession -ComputerName 【替换为你的Hyper-V宿主机IP/主机名】 -Credential (Get-Credential) # 远程调用宿主机命令查询所有虚拟机快照 Invoke-Command -Session $hypervSession -ScriptBlock { Get-VMSnapshot -VMName * } # 操作完成后销毁会话 Remove-PSSession $hypervSession
内容的提问来源于stack exchange,提问作者Helena Raia
相关产品推荐
相关产品推荐

