我有一台安装了 Server Core 的 Windows Server 2012R2 机器,然后我决定切换到 GUI。
长话短说:我运行了 Windows 更新,现在源文件较旧/与操作系统不同步,我需要更新源文件。
这里有几篇文章概述了这一方法的工作原理:
http://blog.coretech.dk/kaj/why-i-cant-convert-my-windows-server-2012-r2-core-to-gui/
我已按照这些说明操作,但更新未能成功更新源。我收到以下错误:
“发生错误 - Package_for_KB29671203 错误:0x80073701,错误:14081,找不到引用的程序集。”
或者
“add-windowspackage 失败。错误代码 = 0x80073701,add-windowspackage:找不到引用的程序集”
我已经广泛搜索了与 Server 2012 和 Windows 更新相关的错误代码的帮助,但是我的 Google 搜索却失败了。
我正在使用位于 c:\Windows\SoftwareDistribution\Download 中的 Windows 更新包
我如何获取这些更新以使我的源文件保持最新?
谢谢!
答案1
当我第一次为 Windows 2012 构建虚拟机模板时,我希望基本安装是核心。如果您想要 GUI,我将有一个部署选项,它会在配置期间启动 GUI 安装脚本。
我遇到了和你同样的问题,我发现了同样的重复系列帖子,概述了你只需要指向更新的安装源。
我花了超过 2 周的时间什么都没做,只是试图让它工作。我创建了 WIM 文件并对其进行了更新。我创建了 VHD 并尝试对其进行了更新,然后我使用 PowerShell 通过新的 cmdlet 从 WSUS 获取更新,以自动执行更新映像的过程。
最重要的是,它从来没有奏效过。我可以用 1 个更新尝试。它成功了。再试几次,它成功了。但是有数百个更新,在某个时候,一个更新或一些更新组合阻止了转换。
不幸的是,我最终决定默认使用模板 GUI,并有一个核心选项。如果你在部署时使用我的模板选择核心,那么它移除GUI,并尝试删除核心没有的所有角色和功能(我将它们进行了比较以找出答案)。但它仍然没有核心那么小。
但我发现,到目前为止,这样做总是能让我从其中一台核心机器返回到 GUI。
我认为正在发生的事情
我在尝试更新安装源时注意到的一件事是并非所有更新都允许离线安装这意味着我无法制作完全最新的离线安装源。
我曾考虑过拥有一个 VM,其唯一目的是进行 GUI 安装,我对其应用更新,然后将其制作成 WIM,用作安装源,仅用于部署以 Core 启动但稍后想要添加 GUI 的 VM。
我一直没时间去做这件事,主要是因为那会很麻烦,而且好处很少;我们几乎从不从核心切换到 GUI。
我希望我能给你带来更好的消息;这个问题真的让我很恼火。2012 R2 中没有修复此问题(正如您所看到的)。
如果您找到了解决这个问题的简单方法,请告诉我;我非常感兴趣。
答案2
以下是我将 Server 2012 R2 Core 系统移至 GUI 的方法。希望它能帮助到某些人!
- 尝试安装该功能后,检查了 C:\Windows\Logs\CBS\CBS.log,发现缺少有效负载文件。示例:“无法找到有效负载文件,组件:amd64_microsoft-windows-w..client-ui.resources_31bf3856ad364e35_7.9.9600.18039_en-us_a9315b328356154d,文件:wushareduxresources.dll.mui”
- 我从另一个具有 GUI 且已完全修补的 Server 2012 R2 系统将 C:\Windows\WinSxS 文件夹复制到我的 Server 2012 R2 Core 服务器上的临时文件夹(我的文件夹是 C:\TempTest)。注意:我实际上必须从两个不同的服务器复制 WinSxS 文件夹,因为第一次尝试启用该功能时,我在 CBS.log 中看到了相同的有效负载问题,只是它会指向不同的版本(例如 amd64_microsoft-...7.9.9600.18066..)。
- 在服务器核心系统上:Dism /Online /Enable-Feature /All /FeatureName:Server-Gui-Mgmt /Source:C:\TempTest /LimitAccess
- 安装后需要重新启动
- 当它重新启动时,得到了 cmd 提示,大约一分钟后服务器管理器弹出(安装“Server-Gui-Mgmt”功能后,一些 GUI 管理功能可用)
- 然后我使用服务器管理器添加“用户界面和基础设施”部分下的“服务器图形 Shell”功能并重新启动。您可以再次通过命令行使用 FeatureName“Server-Gui-Shell”执行此操作。
- 当它出现时,有完整的 GUI,然后安装了多年来与 GUI 相关的 Windows 更新