我正在寻找一种方法来将 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 或将脚本加载到您正在部署的映像中),那么您将陷入困境,主要原因如下:
- WinRM 服务默认未配置侦听器
- 防火墙关闭了 WinRM 端口
- Hyper-V 默认不提供对此信息的访问权限
- 默认情况下禁用 ICMP
您的治疗方案很大程度上取决于您的环境。在我们的环境中,我们:
- 使用 DISM 将 powershell 脚本加载到 Microsoft 的库存图像中
- 使用最低限度配置 WDS 来安装操作系统并启动脚本
- 通过脚本将计算机加入域
加入域后,GPP 可以让我们确保以下几点:
- WinRM 侦听器已配置
- 已打开必要的防火墙端口
- 已启用 ICMP
您还可以:
- 创建黄金映像
- 手动加入域以获取 GPP 配置
- 使用 SCCM 或其他所需状态系统
- 创建可供其他机器克隆的黄金 VHD
您没有提供更多有关您的环境的详细信息,所以这只是 1,000 米的视图。