Windows 2008 R2 winsxs文件夹 – 增长

我在serverfault.com网站上看到很多关于这个文件夹的post,但没有人帮我解决了我的问题。

我有至less20台服务器与完整的系统分区(我不知道为什么,但所有的系统分区已configuration30GB)。

所有服务器上的操作系统是Windows Server 2008 R2,没有安装SP1,因此这些工具是不存在的(compcln.exe和vsp1clean.exe),除此之外我不允许在服务器上安装SP1。

哪里有可能我从Windows目录中删除了许多$NT...文件夹,并在一些服务器,它确实解决了可用空间问题,但在其余的服务器上,我找不到任何$NT...文件夹删除。

在所有服务器上禁用卷影复制以及系统还原。

磁盘的右键菜单 – >属性窗口中缺lessWindows清理工具。

我明白,不build议使用WinSxS文件夹手动debugging。

有没有一个已知的解决scheme,我的问题?

解决您的问题是购买更大的磁盘。 经过10年的更新,仍然在Server 2003上的服务器正在定期运行30 GB的空间。

和30 GB的Windows 2008 R2卷? 忘掉它; 他们只需要更多的空间。 而且如果你的磁盘已满,听起来像新的服务器硬件也将近乎需要。 你可以现在或以后咬住子弹。 现在更便宜。

就个人而言,我倾向于支持操作系统磁盘的镜像RAID,并且在需要的情况下,为数据分区提供4磁盘RAID 10(因为几乎每个在过去10年中制造的服务器都支持至less6个物理磁盘),但是无论哪种方式,这种情况就是为什么最好将数据和操作系统卷保存在不同的磁盘上。

解决scheme/解决方法:

如果你需要回收这个空间,最安全的做法是避免“删除”任何东西,而是移动这个文件夹及其所有文件。 只要 可以挂载到NTFS文件系统上的驱动器号或挂载点的存储系统,您可以按照以下说明安全地执行此操作,直至任何本地/实时,联机,近线或脱机存储。 以下任何一项都可以工作:

  • 另一个活(挂载)分区
  • 具有像FAT或NTFS这样的实时文件系统的光盘(CD,DVD等)
  • 一个外部硬盘
  • 一个USB驱动器
  • 一个networking驱动器

无论何时系统提示您input媒体/接收到有关丢失文件/缺less位置的任何错误,只需确保重新安装/重新插入驱动器/媒体(如果它不是活动分区的话)。

一旦移动,为了“链接”旧的挂载点/位置(大多数情况下是C:\ProgramData\Package Cache\ ),只需创build一个目录junction即可。

Junctionsfile system级别被识别为FSTAB的别名条目。 因此,它对所有程序都是透明的,包括操作系统本身。 换句话说,它不被视为一个文件,只是指向另一个位置(如shortcut ),因此总是没有任何事情的工作。

  1. 您可以将相关文件夹移到新的位置
  2. 创build交点

    • 选项1.(本地) :只需发出内置的Windows Vista / 7/8命令和cmd提示符:

       mklink /J oldpath newpath 

      注意:如果您将新newpath绝对newpath ,您将能够移动链接而不会中断指向新newpath的指针。 如果你使新newpath相对,只要你移动链接并把目标放在一起并保持它们的相对path,就可以防止断开链接。

    • 选项2.(使用工具)另一个很好的select是我多年来使用的一个免费的方便的工具,称为“链接shell扩展” 。 伦敦证券交易所是免费的,你可以在这里find它(或Google): http : //schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

      坦率地说,LSE允许您创build符号链接,硬链接,联结,智能复制,智能克隆,智能镜像,智能移动,拼接,多个来源以及其他一些我觉得太混乱的东西。 但是,这是一个非常棒的免费产品,它创build了一个Windows资源pipe理器上下文菜单,允许您右键单击您的LINK-TARGET文件夹,然后将其拖动到您想要创build实际链接的位置。 你当然可以将链接重命名为任何你想要的。

我通过将该文件夹移动到另一个分区来解决它。 我的服务器是Windows 2008 R2,并且是DC。 这里的步骤是:

  1. 以pipe理员身份login。 将C:\ windows \ winsxs复制到z:\ windows \ winsxs。 驱动器Z在不同的分区上。
  2. 为新文件夹创build一个链接。 在命令提示符下,执行“mklink / jc:\ windows \ winsxs_1 z:\ windows \ winsxs”。 它创build一个名为winsxs_1的链接。
  3. 用Winodws 2008 R2安装盘重新启动服务器。 当它启动时,select修复您的操作系统,而不是安装。 它会popup系统恢复选项窗口。 select“使用恢复工具,可以帮助解决启动Windows的问题”选项。 它列出了安装在此服务器上的操作系统。 写下驱动器号。 你的C盘目前可能不是C盘。 我的驱动器是G.然后点击下一步。
  4. 使用命令提示符。 转到您的操作系统安装的驱动器。 并转到Windows文件夹。 将Windows \ winsxs重命名为winsxs_original。 重命名链接windows \ winsxs_1为winsxs。
  5. 退出命令窗口,然后重新启动服务器。
  6. 以pipe理员身份login。 findwindows \ winsxs_original。 取得所有权。 并授予pipe理员完全控制权。
  7. 重新启动服务器。 完全启动后,请尝试更新/安装/卸载。 然后检查哪个文件夹已被更新。 在我的情况下,z:\ windows \ winsxs被更新。 这意味着操作系统正在使用新的位置。 现在你可以删除c:\ windows \ winsxs_original。

根据这篇technet文章,您应该能够将正确的clnmgr文件从winsxs文件夹中复制出来。

为了使用cleanmgr.exe,您需要复制已经存在于服务器上的两个文件cleanmgr.exe和cleanmgr.exe.mui。

对于Windows Server 2008 R2 64位,可以在以下位置find这两个文件

 C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui 

find文件后,将其移至以下位置:

 Cleanmgr.exe should go in %systemroot%\System32. Cleanmgr.exe.mui should go in %systemroot%\System32\en-US. 

您现在可以通过运行对话框,开始菜单或命令提示符启动磁盘清理工具。

我同意那些说30 GB对于Windows 2008 R2来说还不够的人,但是我也遇到了同样的问题,除了删除一些文件之外,我什么也做不了。 一个名为WinDirStat的工具帮助我识别哪个文件夹占用太多空间。 在我的情况下,它是IIS日志文件,并从系统工具隐藏像清理。 所以,我手动删除它们,这是一个很好的临时解决scheme。