昨天重新安装VisualSVNServer时遇到一些麻烦,今天补记下来。
这台服务器(Windows Server 2003)的硬盘曾经出现过问题,出问题的硬盘恰巧也是VisualSVNServer曾经安装的硬盘。今天想重新安装VisualSVNServer,首先要卸载,但是执行UninstallWMISchemaExecute时报告错误:不是有效的MOF文件(0x8004401e)。要是重新安装也会自动卸载,到这个位置也过不去,下载了最新的版本还是同样的问题。
只好借助网络,中文搜索没有得到有效的帮助,再搜索英文的,找到这样一个博客:http://rolf-engelhard.de/?p=203,说的是同样的问题,大喜。把它的主要步骤摘录如下:
The solution
- Disable the WMI service
sc config winmgmt start= disabled (make sure there is a blank between 'start' and 'disabled')
- Stop the WMI service
net stop winmgmt
- Go to %windir%/System32/wbem and rename the repository-folder
cd C:\WINDOWS\System32\wbem rename Repository Repository-old
- Find the *.mof-file in %windir%/System32/wbem which belongs to VisualSVN
In my case the file was named “6E9A2709F6EB23A5E2F059ACD767AD78.mof”. Inside there were multiple occurences of the string “VisualSVN”—which I found by using Notepad++’s search-in-files-funktionality [2]. Note that the Windows search won’t lead to any useable results since Windows doesn’t do a text-search on *.mof-files by default. - Remove the file found in step 4
- Search the registry on occurences of “VisualSVN” and remove every found item
I guess especially the key “Autorecover MOFs” inHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM
was an entry which recreated the faulty *.mof all over again.
- Enabled the WMI service
sr config winmgmt start= auto
- Start the VisualSVN-Installation
按照这个步骤操作,果然可以卸载软件,确实是个好办法。不过这里有两点补充:
- 看到第6步想投点懒,只删除CIMOM那个键中与VisualSVNServer相关的值,不过证明这个不行,所以只好老老实实地从注册表中删除所有与VisualSVNServer相关的值;
- 可能是上一步删除多了,再安装新版本的时候,到了启动VisualSVNServer服务那步出错,无法启动服务。在控制面板中查了一下,发现是VisualSVNServer的信息有错误,在CMD中使用sc delete visualsvnserver命令将整个服务先删除了,再安装软件就OK了。