百度空间 | 百度首页 
               
 
查看文章
 
MMC 不能打开文件 C:\WINDOWS\system32\devmgmt.msc
2008-05-26 06:32

MMC 不能打开文件 C:\WINDOWS\system32\devmgmt.msc

【原创,转载请注明。看到这么多朋友关心这个问题,于是我便把这篇文章重新整理下,使其容易被理解2009.03.27】

在“我的电脑”的右键中的一个快捷菜单“设备管理器”,某些时候它出错,至于为何出错,我也不记得了,没法重现。

由于后缀名为MSC的文件实际上是XML格式的文件,它需要msxml parser程序的编译以便系统识别,因此出现此问题时,也可以尝试重新注册一下msxml parser看是否能解决问题,方法是:在“运行”对话框
中输入

regsvr32 %WINDIR%\system32\msxml3.dll

        很多人都这么说。可是我的计算机上就不管用。我的计算机上好像是
“MMC 不能打开文件 %systemdrive%\WINDOWS\system32\devmgmt.msc”
迫不得已,自己动手吧。搜了下注册表中关于devmgmt.msc的项,不过就两三个。找找看,应当是下面这个了。
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}]
@="我的电脑"

这个便是“我的电脑”的右键菜单的注册表设置项。我看了看devmgmt.msc的相关项,不仔细看还真看不出来毛病在哪里。在“我的电脑”右键中还有一个“服务(管理器)”,这个没有出错,和“硬件管理器”的原理是一样的(注:在安装原版操作系统的计算机上,如果不自定义,在“我的电脑”右键上是只有一个“管理”的)。


对比下右键中正确的“服务”(或者其它正确的右键菜单,“搜索”“管理”)和错误的“设备管理器”。
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\services]
@="服务(&F)"

正确的HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\devmgr 的数据类型是可扩展的字符串REG_EXPAND_SZ;出错的时候是字符串值REG_SZ
正确的shell\devmgr \command的数据类型是可扩展的字符串。并且命令是
%windir%\system32\mmc.exe /s %%SYSTEMDRIVE%%\WINDOWS\SYSTEM32\devmgmt.msc
出错的是“mmc.exe %%SYSTEMDRIVE%%\WINDOWS\SYSTEM32\devmgmt.msc”

以上找到了问题所在,下面说说我的解决方法。

先说一个很重要的问题:在注册表中新建一个项的时候,会默认一个字符串的值,用系统自带的regedit没法给这个默认的改为其他类型的,而我们需要这个值是
可扩展的字符串。
手动解决的步骤:导出
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\services 这个正常的项,然后用记事本编辑。
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\services]
@="服务(&F)"
"SuppressionPolicy"=dword:4000003c

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\services\command]
@=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,\
00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,63,00,2e,00,65,00,78,00,\
65,00,20,00,2f,00,73,00,20,00,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,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
32,00,5c,00,73,00,65,00,72,00,76,00,69,00,63,00,65,00,73,00,2e,00,6d,00,73,\
00,63,00,20,00,2f,00,73,00,00,00


services改为devmgr 【说明:其实改为其他任意不是services的就行,这一步一定要在导入前修改,因为导出的是services,再导入一个services,倒来倒去多没劲】
把服务(&F)改为设备(w)   【说明:其实这个修改也可以在导入后进行】
保存,导入,再打开注册表,找到刚才导入的这一项
数据类型就是我们想要的“
可扩展的字符串”,而不是系统默认的数据类型字符串了。然后我们修改后面的执行命令的路径(即command的值)为
%windir%\system32\mmc.exe /s %%SYSTEMDRIVE%%\WINDOWS\SYSTEM32\devmgmt.msc

至此,大功告成

事后我找到一款软件Registrar Registry Manager_5.01。目前这个软件到了5.66可是最新版没有破解版,也没有汉化版。这个软件可以修改默认值的数据类型。


类别:计算机 | 添加到搜藏 | 浏览() | 评论 (11)
 
最近读者:
 
网友评论:
1
2008-06-19 10:08 | 回复
我的电脑也是这个问题..不过没解决掉..."数据类型是可扩展的字符串",这个怎么修改..新建的项目默认的类型是字符串值,好象不能修改的!!还有一个问题就是..[HKEY_LOCAL_MACHINE]和[HKEY_LOCAL_ROOT]里有相同的值要修改哪一个啊!!!
 
2
2008-06-23 14:55 | 回复
谢谢!!问题解决了...最后我嫌麻烦就把他里面的都删除掉了..反正多了看着也不爽呵!!不过还是要谢谢你!
 
3
2008-07-09 19:58 | 回复
你真是太牛比了,我也不知道最近怎么突然就发现电脑出了这么个问题。不过我是直接删掉了那个command项,然后把下面的manage的command项导出来,接着把那个名字改掉,然后导入,最后修改后面的键值的。
 
4
2008-09-10 18:46 | 回复
果然高啊。我这个电脑盲在各位大侠的高招下解决了相同的这个大难题了。谢谢~~~
 
5
2008-10-15 18:52 | 回复
真的是太强了,这个问题困扰我好久了,谢谢了
 
6
2008-12-31 19:27 | 回复
太强了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
7
2009-01-18 20:40 | 回复
不知道说什么。非常感谢!
 
8
2009-03-23 23:55 | 回复
非常感谢LZ,很好用
 
9
2009-05-05 19:41 | 回复
    同志,你好。今天有幸能看到你写的这篇文章哦。非常好;但是我对电脑不是很懂。
    我电脑也出现了这样的问题,也找过一些方法,如用regsvr32 %WINDIR%\system32\msxml3.dll重新注册等等方法,我都试了但是没有解决,很郁闷。请哥们指点我,能给我发份邮件或者就在这里告诉我呢。我 QQ45946095 迫切希望你能联系我,教我下。
    因我看你这篇文章后,我也找了下注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Classes项,但是下面就没有CLSID项啊。很郁闷。不太懂你是怎么看到的。请指教。
    
 
10
2009-05-05 19:42 | 回复
同志,你好。今天有幸能看到你写的这篇文章哦。非常好;但是我对电脑不是很懂。
    我电脑也出现了这样的问题,也找过一些方法,如用regsvr32 %WINDIR%\system32\msxml3.dll重新注册等等方法,我都试了但是没有解决,很郁闷。请哥们指点我,能给我发份邮件或者就在这里告诉我呢。我 QQ45946095 迫切希望你能联系我,教我下。
    因我看你这篇文章后,我也找了下注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Classes项,但是下面就没有CLSID项啊。很郁闷。不太懂你是怎么看到的。请指教。
 
11
2009-05-06 15:10 | 回复
回复wq:有的噢,仔细看
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu