我有一个在 Hyper-V 上运行的 Windows Server 2012 R2 实例,我正尝试将其从 PowerShell 4.0 更新到 PowerShell 5.1。应用更新后,我重新启动服务器以应用更新,之后 Windows 立即显示:
我们无法完成更新
撤消更改
不要关闭你的电脑
在线研究使我相信这是 Hyper-V 中的安全启动选项的问题。当我尝试在 Powershell 中编辑此选项时:
Set-VMFirmware "Build Server" -EnableSecureBoot Off
我收到错误:
Set-VMFirmware:参数无效。第 1 代虚拟机不支持 VMFirmware cmdlet
我如何才能找到该问题的根本原因,如果禁用 Hyper-V 中的安全启动是解决方案,那么我如何在 Gen1 VM 上执行此操作?
编辑:尝试使用最新补丁更新 Windows 后,我收到了相同的“无法完成更新,正在撤消更改”消息。这似乎是 Windows 更新的问题,而不是 PowerShell 的问题……
答案1
经过几个小时的研究,问题似乎在于不是由于虚拟机上的安全启动,而是由于Windows Temp 目录的内容/卷。这似乎也是 Azure Windows VM 中的一个问题。目录:\Windows\Temp我的虚拟机上的目录约为 2.8gb。我遵循的步骤如下:
- 移除所有把手 目录:\Windows\Temp
- 删除目录:\Windows\Temp
- 跑步Windows更新
- 重启虚拟机
- 运行 Windows Server 2012 R2Windows 管理框架 5.1安装程序
- 重启虚拟机
注意:一些消息来源建议设置温度环境变量直接指向 C:\Windows\Temp(如果尚未指向)。我的 TEMP 变量指向管理员帐户的临时目录。我这样做了不是按照上述步骤操作时,请更改此设置。在本例中,这似乎没有什么区别。