如何在Windows 2012服务器上安装磁盘清理而不安装Desktop Experience?


14

问题仅仅是因为我想尽我所能,在运行Optimize-VHD cmdlet之前清理/压缩VM的.vhdx驱动器。使用Microsoft的“磁盘清理”实用程序很好。问题是默认情况下未安装它。

获得此功能的官方方法是使用“添加角色和功能”并添加“桌面体验”功能。这样做有一些不良的副作用,其中该功能还需要“媒体基础”和“墨水和手写”功能。我只想要“磁盘清理”。


请记住,与2008年不同,Desktop Experience是可移动的,您可以回到Server Core。
迈克尔·汉普顿

是的:这就是我想出的部分原因。:)但是,现在我不必重新启动服务器即可“安装”它。
Granger

另外,删除下的所有日志文件c:\windows\logs\cbs。一些用户报告这些日志消耗了20+ GB。每次您运行“磁盘清理”或“ Windows更新”(谁知道其他什么)时,这些日志也会扩展。如果您无法删除它们,请停止该TrustedInstaller服务,然后重试。
James L.

Answers:


17

“磁盘清理”仅需要2个文件即可工作(总共少于260KB)

针对您的平台的“ cleanmgr.exe”,以及针对您的语言环境的“ cleanmgr.exe.mui”。它们已经在您的计算机上的“%SystemRoot%\ WinSxS”下的子文件夹中。

首先,在“%SystemRoot%\ WinSxS”文件夹下搜索“ cleanmgr.exe”。您可能会在“ amd64”,“ wow64”和“ x86”文件夹中找到文件。我在Windows Server 2012 Standard x64安装中为两个文件都选择了“ amd64”。

将这两个文件复制到以下位置:

  • %SystemRoot%\ System32 \ cleanmgr.exe
  • %SystemRoot%\ System32 \ zh-cn \ cleanmgr.exe.mui

(我认为,如果您使用其他语言环境,则WinSxS会有更多选择,并且您必须将.mui文件复制到该语言环境的子文件夹中。)

从技术上讲,您已经完成了。如果您想以“ 管理员身份运行“ cleanmgr.exe” 则可以显示它可以清除的所有内容(包括存储在WinSxS中的陈旧Windows更新,现在是Win2012中的一个选项)。

如果您想要更多的“ GUI-ness”,请继续...

要将新的“磁盘清理”放入“开始”菜单,请创建“ cleanmgr.exe”文件的快捷方式。将新的快捷方式放在“%ProgramData%\ Microsoft \ Windows \开始菜单\ Programs \ Administrative Tools”文件夹中;将其命名为“磁盘清理”。现在,在“开始”菜单中,您只需键入“磁盘清理”,然后您就可以选择以管理员身份启动它。

要使“磁盘清理”显示为磁盘驱动器“属性”对话框上的按钮,您必须更改注册表以添加新的键和“可扩展的字符串值”。创建一个新的.reg文本文件,然后粘贴以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

如果要手动添加,则十六进制字符串为“%SystemRoot%\ System32 \ cleanmgr.exe / D%c”。对我来说,我只需要添加第一个键。第二个键只是我找到设置所在的另一个地方。仅供参考,注册表中还有其他两个地方处理“ cleanmgr.exe”,但是幸运的是,它们无关紧要,因为它们使用了一些ClassID GUID东西。


2
如果您使用的是64位操作系统,则该winsxs文件夹中有两组文件。该amd64文件进去c:\windows\system32,并c:\windows\system32\en-USx86文件去c:\windows\syswow64c:\windows\syswow64\en-US
James L.

看来此方法并不完整。这样做似乎没有给我选择删除“以前的Windows安装”的选项。在给定的主机上安装Desktop Experience确实可以。我将检查更多服务器以确认这一点。
Michael Bisbjerg '16

1
在Win2012 R2上对此进行了尝试,但是Windows告诉我它不支持运行旧的16位应用程序(!)。查看EXE文件,它似乎已压缩,但似乎没有官方实用程序来提取它。我在GitHub上找到了它,它在我的安装中运行良好,并且清理向导正常工作:github.com/hfiref0x/SXSEXP
Ale

看来这不再适用于2018年。我在WinSxS目录中有多个子文件夹(amd64,x86,wow64),其中包含cleanmgr.exe / cleanmgr.mui的多个副本,而且所有组合都不起作用-EXE会立即退出运行时。我还必须使用@Ale提到的SXSEXP工具,以使cleanmgr.exe甚至可以执行。
伊恩·肯普

仅部分工作(没有“清理系统文件”选项)
jitbit
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.