向 Hyper-V 虚拟机发送 WMI 命令

向 Hyper-V 虚拟机发送 WMI 命令

我正在寻找一种方法来将 wmi 命令(具体来说是“wmic 进程”)发送到虚拟机(由 Hyper-V 2016 托管)并获取其输出。我正在使用 powershell 观察虚拟机的 windows 部署安装状态,需要等待进程启动(在 vm 中)。

此时虚拟机处于 Windows 预环境状态,因此我无法启用 powershell 远程处理(因为在此状态下未启用 powershell)

答案1

这有点像是进退两难的局面。Powershell Remoting 实际上只是在 WinRM/WSMan/CIM 之上/周围构建的一项不错的功能,因此说您无法启用 powershell remoting 是无法访问 WinRM/WSMan 的明显症状,这意味着您无法使用 WMI/CIM。

如果事情已经处于期望状态,你可以运行Test-WSMan。不幸的是,你的情况似乎并非如此。

假设您不使用任何自动化功能(例如 SCCM 或将脚本加载到您正在部署的映像中),那么您将陷入困境,主要原因如下:

  1. WinRM 服务默认未配置侦听器
  2. 防火墙关闭了 WinRM 端口
  3. Hyper-V 默认不提供对此信息的访问权限
  4. 默认情况下禁用 ICMP

您的治疗方案很大程度上取决于您的环境。在我们的环境中,我们:

  1. 使用 DISM 将 powershell 脚本加载到 Microsoft 的库存图像中
  2. 使用最低限度配置 WDS 来安装操作系统并启动脚本
  3. 通过脚本将计算机加入域

加入域后,GPP 可以让我们确保以下几点:

  1. WinRM 侦听器已配置
  2. 已打开必要的防火墙端口
  3. 已启用 ICMP

您还可以:

  • 创建黄金映像
  • 手动加入域以获取 GPP 配置
  • 使用 SCCM 或其他所需状态系统
  • 创建可供其他机器克隆的黄金 VHD

您没有提供更多有关您的环境的详细信息,所以这只是 1,000 米的视图。

相关内容