已解决:无法连接到WMI提供程序。你没有权限或者该服务器无法访问/cannot connect to WMI provider. You do not have permission or the……
我想用sql server做一个数据库的作业,主要是想用一下asp做个网页。首先需要安装sql server,刚开始以为是件很简单的事,在我的visual studio 2008的安装包里就有sql server 2005 express edition 的安装软件,直接安装就行了,哪知道后来的过程那叫一个艰辛啊……
先安装sql server 2005(是英文版的),安装过程非常顺利。然后我想进入Server Configuration Manager(配置管理器),点击之后就出现了下面这个警告框:
上网搜了搜,在一个老外的博客上找到一个解决方案:(http://blogs.msdn.com/echarran/archive/2006/01/03/509061.aspx)
Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2005 servers with SQL Server Configuration Manager.
Invalid class [0x80041010]
The solution is to go to a command prompt and then run mofcomp.
C:\Program Files\Microsoft SQL Server\Shared>mofcomp "C:\Program Files\Microsoft SQL Server\Shared\sqlmgmproviderxpsp2up.mof"
The output will look like below
Microsoft (R) 32-bit MOF Compiler Version 5.1.2600.2180
Copyright (c) Microsoft Corp. 1997-2001. All rights reserved.
Parsing MOF file: C:\Program Files\Microsoft SQL Server\Shared\sqlmgmprovider
xpsp2up.mof
MOF file has been successfully parsed
Storing data in the repository...
Done!
注意一下:上述的mofcomp命令在C:\WINDOWS\system32\wbem目录下。 通过这个博客的留言,貌似有些人用这个方法解决了问题。我进入了windows的命令处理器,按照这个方法试了一下,得到了和他一样输出的结果,很兴奋,以为问题解决了。再次进入Server Configuration Manager,不幸的是还是弹出了同样的警告框。继续在网上搜,由于关键字大部分是英文的,搜到的英文网页中除了上述的方法转载就是抱怨……
接下来只好自己想办法了,我先想到这是不是sql server 2005自身的问题,现在sql server 2008 express 已经出了,就安装个sql server 200吧。于是卸载sql server 2005,安装sql server 2008(安装sql server 2008 之前还得安装.net framework sp2 和windows installer 从微软官网下载即可,安装好后重启电脑),这次安装的是个中文版。
sql server 2008安装过程比sql server 2005的过程麻烦了一些,主要是需要配置数据库管理员,使用本机的管理员账户就行。安装成功后,怀着忐忑的心情进入配置管理器,点击之后该死的警告框又弹了出来,还是不行。
在网上继续搜,这时看到有人说是管理员(administrator)没有 network service的权限,所以 WMI无法打开。 设置的方法很简单,网络上都有:
1 右击“我的电脑”-->“管理”
2 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。
3 单击“添加”按钮,出现添加用户对话框
4 单击“高级”按钮,再单击“搜索”(或是“立即查找”)按钮。注:此'NT AUTHORITY\NETWORK SERVICE'用户为系统内置帐户,无法直接添加。
5 在“搜索结果”内选择“Network Service”用户后,单击“确定”
按照以上的步骤设置之后,进入配置管理器,问题依旧出现……到了这里实在让人郁闷的不行。
这时又看到一个新方法:检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下。 我进到system32目录找framedyn.dll文件,果然没有找到,再进入system32\wbem目录,找framedyn.dll,拷贝到system32目下。再次进入配置管理器,这次终于成功了!!!问题终于解决了!!!这主要是通过Java 或者vc连接数据库遇到的问题。
以上所述三种方法,总是一个在有些人的电脑上可以起作用。我很不幸尝试到第三种方法才解决了问题,也有可能这三个操作在我的电脑上都是需要的。