CleanMgr不能再安装在服务器2012 R2上

只是试图安装cleanmgr并安装新的2012 R2。 复制CleanMgr.exe和CleanMgr.exe.mui,就像之前完成的一样,但运行时会出现错误:由于与64位版本的Windows不兼容,Program或feature \?system32 \ cleanmgr.exe无法启动或运行

您需要通过安装Desktop Experiencefunction启用磁盘清理 (请参阅在Windows Server 2012中启用磁盘清理实用程序 )。 命令行界面应仍然可以通过C:\Windows\CleanMgr.exe可执行文件。

我回到我的实验室,试图抓住从x86和WOW64位更新的CleanMgr.exeCleanMgr.exe.mui ,认为可能会解决兼容性问题:

 Copy-Item -Path C:\Windows\WinSxS\x86_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.3.9600.16384_en-us_f2763474b4405afa\cleanmgr.exe.mui -Destination C:\Windows\System32\en-US Copy-Item -Path C:\Windows\WinSxS\wow64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.3.9600.16384_none_685740be65e399a2\cleanmgr.exe -Destination C:\Windows\System32 

结果…

CleanMgr.exe不支持的16位应用程序

啊。 进步的进展。 我看到两个选项。 您可以运行ProcMon并尝试追踪WOW64子系统中的所有各种DLL(也许通过在一次性服务器上进行Desktop Experience安装),您可以尝试使用此方法删除windows.old目录,或者您可以按照微软的正式支持,尽pipe误导的build议,并从桌面体验Windowsfunction安装它。

我有和Keith描述的W2K12 R2 SP1服务器一样的问题。 我对这个问题的解决scheme:

  1. 安装桌面体验function。
  2. 然后,您可以在SystemRoot \ System32 \ en-US \ cleanmgr.exe.mui和SystemRoot \ System32 \ cleanmgr.exe中看到新的“cleanmgr”文件,这些文件与Winsxs文件夹中的文件相同
  3. 将这些文件复制到另一个文件夹,例如C:\
  4. 删除桌面体验function,这将从system32中删除cleanmgr文件!
  5. 将Cleanmgr文件从您的文件夹(步骤3)复制到已知的system32位置(步骤2)
  6. 现在你可以运行cleanmgr.exe

我使用这个过程来制作vmware模板机器,所以我这样做了一次,所有其他未来的w2k12r2服务器将已经安装了cleanmgr文件

直接从c:\windows\WinSxS目录复制,虽然一旦被支持,现在不再按原样工作。 这似乎是Windows Server 2012 R2更新1中的更改

在hex编辑器中快速查看cleanmgr.exe二进制文件显示C:\Windows\WinSxS\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.3.9600.17031_none_5e3588b0315d2219\cleanmgr.exe文件不再以所需的魔法标题“MZ”开头。 。“,而是以”DCN …“开头,文件比扩展版本小得多。 这就是为什么我们得到上面的“不支持…”对话框。

这似乎是KB 2821985改进的直接结果#2 – 添加了一项function,可压缩未使用的二进制文件并分配可用磁盘空间,以备将来的更新使用Windows。

仍然试图找出如何以编程方式提取/解压缩文件。 :^(

 Copy-Item "C:\Windows\WinSxS\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.3.9600.16384_en-us_4e94cff86c9dcc30\cleanmgr.exe.mui" -Destination "$env:SystemRoot\System32\en-US\cleanmgr.exe.mui" -Force Copy-Item "C:\Windows\WinSxS\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.3.9600.16384_none_5e02966c3182d7a7\cleanmgr.exe" -Destination "$env:SystemRoot\System32\cleanmgr.exe" -Force 

我相信这是你要找的。

尼克的评论接近这个,但是这是一个更清洁,并使用$ env而不是%env%variables(powershell喜欢$ env更好)

有人慷慨地提供了一个包含所需文件的压缩文件,与上述步骤(不包括安装“桌面体验垃圾”)实际上适用于Windows Server 2012 R2 64位。

您可以从作者的页面阅读更多信息,并自己下载链接。 这是一个zip文件,可以扩展到您的系统驱动器,并将文件放在需要的地方。 还有一个Windows 2008版本的链接。

相当于为什么我们不得不采取这样的措施来清理硬盘这么简单的事情对我来说是个谜。

更新:我在这里打开了Windows Server用户语音请求 – 如果您认为安装磁盘清理有用,请投票。

您可以将Cleanmgr.exe和Cleanmgr.exe.mui从更新的Windows 8复制到服务器。