以文本方式查看主题

-  ╋艺 镇╋  (http://zyzsky.com/bbs/index.asp)
--  ┣◇玩转系统  (http://zyzsky.com/bbs/list.asp?boardid=28)
----  [win7]C:\Windows\winsxs文件夹下是什么文件,可以删除吗?  (http://zyzsky.com/bbs/dispbbs.asp?boardid=28&id=4425)

--  作者:admin
--  发布时间:2014/11/22 10:29:10
--  [win7]C:\Windows\winsxs文件夹下是什么文件,可以删除吗?

 C:\\Windows\\winsxs文件夹下有很多的系统文件,占用空间达5G之多。我的系统是由VIST升级安装到,请问:该文件夹正常安装WIN7时应该有多大?我的该文件夹下的文件有5个G之大是否正常?


----------


WINSXS里面的文件都是系统必要文件,里面有极大部分的文件都与system32文件夹中的重复,当然你不用担心占磁盘空间的问题,因为重复的文件都是占用一份文件的空间的,保证在一份文件缺失的情况下,还有另一份顶着。另外,其余不重复的文件就是WINSXS特有的文件啦,也是系统必须的,且只会占一点点的空间。
所以不能删

------------


因为磁盘空间不够了,所以想起来清理一下系统垃圾文件,主要目标就是臭名昭著的winsxs目录。这个winsxs就是微软为了解决“dll hell”问题,结果是好比在windows系统里安置了一个毫无节制不断增大的“肿瘤”。听说微软研究院现在在研究这个问题,不过我想我的硬盘空间不够大,等不到这个补丁出来的时候,所以只好自己动手了。

winsxs目录下的文件都是系统要用的各种库文件,system32下存放了这些dll的最新的版本,所有老版本的dll都放在winsxs下。所以只要你安装程序或者更新补丁,system32下的文件就会被更新,而同时winsxs就会增加一些旧文件,所以我们的C盘空间就在持续不断地减少,直到磁盘容量不够,被迫重装系统为止,如果你足够幸运,可以直接安装最新的SP的话,或许可以为winsxs节约一点微薄的空间。

本工具的设计思想就是删除所有的旧文件。所有满足如下全部条件的目录都会被移动到C:\\Windows\\winsxs_del目录中,你自行决定是否删除!建议运行几天再删!请保存为winsxs_clear.bat即可

@echo off
rem 获取windows版本
set move_dir=%SystemRoot%\\winsxs_del
if not exist %move_dir%\\nul md %move_dir%
set winver=none
FOR /F "eol=; tokens=4* delims=] " %%i in (\'ver\') do set winver=%%i
if "%winver%" == "none" goto enover
echo windows version is %winver%, ready to list winsxs dir.
if not exist %SystemRoot%\\winsxs\\nul goto enosxs

set ver_prefix=%winver:~0,-1%
echo list winsxs finished! now ready to clear duplicated files 
echo dir /ad %SystemRoot%\\winsxs\\*_%ver_prefix%*

if "%1" == "run-winsxs-generated" goto :lSkipGen
rem 准备生成代码
copy /y "%~f0" "%temp%\\%~nx0" > nul
echo rem genereted code here >> "%temp%\\%~nx0"
echo :ldcdStat1 >> "%temp%\\%~nx0"
echo set end4=%%arg:%ver_prefix%=%%>> "%temp%\\%~nx0"
echo goto ldcdStat2 >> "%temp%\\%~nx0"
echo :ldcdStat3 >> "%temp%\\%~nx0"
echo set end4a=%%arg:%winver%=%%>> "%temp%\\%~nx0"
echo goto ldcdStat4 >> "%temp%\\%~nx0"
rem notepad "%temp%\\%~nx0"
"%temp%\\%~nx0" run-winsxs-generated
goto :EOF

:lSkipGen
FOR /F "eol=; tokens=1-4 delims= " %%a in (\'dir /ad %SystemRoot%\\winsxs\\*_%ver_prefix%*\') do (
  if "%%c" == "<DIR>" call:fnDoClear %%d
)

echo clear OK!
goto :EOF

:enover
echo could not get windows version, abort!
goto :EOF

:enosxs
echo not found %SystemRoot%\\winsxs! maybe no privilege or lower windows!
echo only support windows XP and later!
goto :EOF

:fnDoClear
rem arg: dir_name
FOR /F "eol=; tokens=1-14 delims=_" %%g in ("%1") do call:fnDoClearDir %1 %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r s %%t %%u %%v %%w %%x %%y %%z
goto :EOF

:fnDoClearDir
rem arg: dir_name dir_parts 
set d_name=%1
rem 检查参数是否匹配 %winver%, 先跳过前两个.同时准备组合新版本匹配名称,nv1存当前版本,nv2存当前的前一个版本
set nv1=%2_%3_
set nv2=%2_%3_
:ldcdCycle
if "%4" == "" goto :EOF
rem 检查是否 ver_prefix 开头,如果是则继续检查是否winver,如果不是winver则表示目标存在
set arg=%4
rem set line=set end4=%%arg:%ver_prefix%=%%
rem %line%
goto ldcdStat1
:ldcdStat2
if "%arg%" == "%end4%" goto ldcdNext
rem 检查是否 winver 开头
rem set line=set end4a=%%arg:%winver%=%%
rem %line%
goto ldcdStat3
:ldcdStat4
if not "%arg%" == "%end4a%" goto :EOF
rem 至此则为 ver_prefix 开头 且 不等于 winver 的目录名,检查最新版本是否存在,存在则可删除旧的
set newfound=false
for /d %%v in ("%SystemRoot%\\winsxs\\%nv1%%winver%.*_%5_*") do (
  if exist %%v\\nul set newfound=true
)
if "%newfound%" == "true" call:fnDelDir %d_name%

goto :EOF
:ldcdNext
set nv2=%nv1%
set nv1=%nv2%%4_
shift
goto ldcdCycle

:fnDelDir
rem arg: dir
echo del %SystemRoot%\\winsxs\\%1
takeown /r /f "%SystemRoot%\\winsxs\\%1"
cacls "%SystemRoot%\\winsxs\\%1" /t /e /g everyone:f
move "%SystemRoot%\\winsxs\\%1" "%move_dir%\\%1"
goto :EOF


http://zhidao.baidu.com/link?url=AEK0KscJg7A-GQrbHSJF-jtpaPhUGzKeNyZvsumlancBmW7TrVIQSSZPeGAVwkYRUvF8JHQbgPrkNArbXQz5K_

[此贴子已经被作者于2014-11-22 10:37:27编辑过]

--  作者:admin
--  发布时间:2014/11/22 10:33:31
--  

   大家想必大多数人都用过软媒出品的魔方、Vista优化大师或者Windows7优化大师里面的系统瘦身功能,其中,瘦身空间最多的一个功能,就是要对一个文件夹进行操作:WinSXS文件夹。

  大家知道,在Vista和Windows7系统盘的Windows目录下,有一个名为winsxs的文件夹,对于整个Windows目录来说,这个文件夹就占用了其一半多的体积(近3GB)不但如此,随着系统使用时间的不断延长,winsxs文件夹的体积还会变得更大,我的现在已经4G多了,这真是一块“赘肉”呀!

  对于系统盘空间本来就不很富裕的朋友来说,这快“赘肉”难免会拖慢系统的运行速度。如果仅仅是因为这个原因,就对硬盘重新分区以让系统盘的空间变得更大,接着重装系统,这也实在是太麻烦了!其实,我们可以采取一个更简单的方法,将winsxs这一块“赘肉”扔到其他硬盘分区下,为系统盘腾出更大的未用空间从而让系统跑得更快。下面,笔者就以Windows7为例子,给大家介绍一下具体的操作步骤,Vista下面同理。

  Tips:winsxs文件夹的作用

  winsxs是VISTA/Windows 7的Windows目录下一个非常重要的文件夹,该文件夹里边有很多重要的组件,版本也很复杂,为了保证Windows的正常运行,里面的文件是不可删除的,这些文件夹支撑着mscorwks.dll,没有它们nmscorwks也无法加载。如果强行删除后,可能只能以安全模式能勉强进入Windows,Windows也就“挂”了。

  图片点击可在新窗口打开查看

   步骤/方法 1第一步:建立链接。先从官方下载 “PendMoves和 MoveFile",然后将下载的名为”PendMoves“的ZIP格式压缩包解压到 ”X:\\Windows\\System32"目录下(X是系统盘,下同);再单击菜单“开始—运行”,接着在弹出的“运行”对话框中出入Cmd并按下“Ctrl+Shift+Enter"快捷键,以管理员身份运行Cmd,打开”命令提示符“窗口;最后窗口的光标处依次执行以下两条命令(每输入一条命令都要按下回车键,下同)

  cd \\windows

  mklink /X winsxs.link winsxs.moved

  2第二步:获取对winsxs文件夹的完全控制权限。双击桌面的“计算机”图标,依次定位到“X:\\Windows”目录下;接着右击该目录下的“winsxs”文件夹,选择“属性”,打开“winsxs属性”的对话框的“安全”选项卡并单击该选项卡的“高级”按钮,然后在新弹出的“winsxs的高级安全设置”对话框中切换到“所有者”选项卡并单击该选项卡的“编辑”按钮;再在弹出的对话框中选中“Administrators”选项并勾选“替换子容器和对象的所有者”复选框,最后单击“确定”按钮即可。

  3第三步:重命名和复制文件。执行完第一步操作中的两条DOS命令后,接着在“命令提示符”窗口光标处依次执行以下两条命令:

  movefile X:\\Windows\\winsxs X:\\Windows\\winsxs.moved movefile X:\\Windows\\winsxs.link X:\\Windows\\winsxs

  这两条DOS命令的含义分别是:将“X:\\Windows”目录下的“winsxs”文件夹重命名为“winsxs.moved”、将“X:\\Windows”目录下的“winsxs.link”重命名为winsxs.

  完成文件夹及文件的重命名工作后,接着重新启动系统,再将“X:\\Windows”目录下的“winsxs.moved”文件夹下的所有内容复制到系统盘以外某个硬盘分区的“Windows、winsxs”目录下(如“D:\\Windows\\winsxs”)即可。

  4第四步:建立关联及删除“winsxs.moved”文件夹。再一次以管理员身份运行Cmd,然后在光标处依次执行以下三条命令:

  cd \\windows

  rmdir winsxs

  mklink /X winsxs D:\\windows\\winsxs

  后两条DOS命令的含义是:删除“X:\\Windows”目录下名为“winsxs”的链接,然后在新建一个与之同名的链接,指向“D:\\windows\\winsxs”目录下。

  完成指向“D:\\windows\\winsxs”目录的名为“winsxs”的新链接的创建工作后,接着再重启系统,最后将“X:\\Windows”目录下的名为“winsxs.moved”的文件夹删除就可以了。

  将“赘肉”winsxs文件夹扔到系统盘以外的其他分区下,从而为系统盘腾出更大的未用空间,Windows 7能够跑得更快这当然是理所当然的事情了。有此需要的朋友不妨一试。

  如果不小心把winsxs删除了,可以这样恢复:拿个Windows7系统安装盘用Windows7优化大师、Vista优化大师里面的一键修复系统即可。

  不过,并不建议新手朋友们对这个文件夹进行直接操作,想要对系统盘减肥,还是用软媒出品的魔方、Vista优化大师或者Windows7优化大师里面的系统瘦身功能就可以了。

http://jingyan.baidu.com/article/466506586b270ef548e5f810.html

[此贴子已经被作者于2014-11-22 10:37:10编辑过]

--  作者:admin
--  发布时间:2014/11/22 10:46:42
--  

 微软官方补丁帮你干掉可恶的WinSxS目录



  熟悉Windows的朋友应该都知道,微软从Windows Vista开始引入了一个WinSxS系统目录,用来存放补丁更新过程中产生的各种文件,作为备份方便用户还原,但是因为事无巨细,而且即便已经被新补丁替换的文件也会继续保留,直接后果就是如果你一直坚持Windows Update,这个文件夹的体积就会迅速膨胀,会轻松超过10GB。

  网上有很多高手提供的Windows瘦身教程,其中不少都涉及对这个目录的清理,但因为涉及大量系统文件,稍有不慎就会导致系统功能异常,甚至崩溃。

  由于微软已经基本停止了SP服务包的开发和发放,系统更新都靠补丁完成,所以如果不加以管理,WinSxS会让几乎所有人无法接受。

  微软现在总算意识到了这个问题,本周通过Windows Update放出了一个编号“KB2852386”的更新补丁,专门用来清理WinSxS目录中已经无用的补丁备份。

  它会自动检测系统已经安装的Windows Update补丁,找到那些不再需要的,但是如果某个安全补丁属于高危级别,它是不会动的。

  使用方法也很简单,只要在Windows 7系统所在的磁盘分区上点击右键,选择磁盘清理,稍等一会儿在弹出的窗口上点击“清理系统文件”(Clean up system files),就开始了。

  图片点击可在新窗口打开查看

  注意:

  1、需要使用系统管理员权限登陆。

  2、可能需要重启才能完成清理。

  3、清理后相关补丁将无法卸载,必须重新单独安装一次才能再卸载掉。


http://news.mydrivers.com/1/278/278311.htm




http://www.ithome.com/html/win7/55093.htm



[此贴子已经被作者于2014-11-22 11:14:54编辑过]

--  作者:admin
--  发布时间:2014/11/22 11:18:14
--  
 http://support.microsoft.com/kb/2795190