WMIC出错解决办法
WMIC出错解决办法
WMI 远程连接拒绝访问、没有权限、不到对象的解决办法(XP )
Step 1、检查HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 下的forceguest 的值
该值必须为0 (dword:00000000);
Step 2、单击“开始”,单击“运⾏”,键⼊ DCOMCNF G ,然后单击“确定”(或者“开始”->“设置”->“控制⾯板”->“管理⼯具”->“组件服务”)。在“组件服务”对话框中,依次展开“组件服务”、“计算机”,然后展开“我的电脑”。在⼯具栏上,单击“配置‘我的电脑’”按钮。随即显⽰“我的电脑”对话框。在“我的电脑”对话框中,单击“COM 安全”选项卡.在“启动和激活权限”下,单击“编辑限制”。在“启动权限”对话框中,如果您的⽤户名称或您的组未显⽰在“组或⽤户名称”列表中,请按照下列步骤操作: a. 在“启动权限”对话框中,单击“添加”。
b. 在“选择⽤户、计算机或组”对话框中,将您的名称和组添加到“输⼊对象名称来选择”框中,然后单击“确定”。
在“启动权限”对话框中,在“组或⽤户名称”框内选择您的⽤户和组。在“⽤户权限”下的“允许”栏中,选择“远程启动”,然后单
击“确定”。
Step 3、防⽕墙,具体信息在www.doczj/doc/8006570a844769eae009edd9.html /kb/875605/zh-cn netsh firewall set service remoteadmin enable
现在在cmd 的 wmic 中已经可以成功连接了
/node:192.168.11.22/user:administrator process
在脚本中实现,如下:
Dim nameSpace, resCode
nameSpace="root\cimv2"
resCode =
ConnectWmiServer("192.168.75.164",nameSpace,"administrator","test") If resCode Then
WScript.Echo "连接成功"
Else
WScript.Echo "连接失败"
End IF
Function ConnectWmiServer(strComputerName, strNameSpace, strUserName, strPassWord)
On Error Resume Next
Dim objSWbemLocator
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") If strComputerName <> "." Then ' . 代表是本机Set objSWbemServices =
objSWbemLocator.ConnectServer(strComputerName, strNameSpace, strUserName, strPassWord)
如何打开端口Else
Set objSWbemServices = GetObject("winmgmts:\\" & strComputerName & "\" & strNameSpace)
End If
If err.number Then
ConnectWmiServer = False
err.clear
Exit Function
End If
ConnectWmiServer = True
Set objSWbemLocator = Nothing
End Function
在 Windows XP SP2 中解决与 WMI 相关的问题
(转载⾃:www.doczj/doc/8006570a844769eae009edd9.html /kb/875605/zh-cn)
当您解决与 WMI 相关的问题时,⾸先要确定是本地问题还是远程问题。为此,请尝试从本地访问 WMI,将⽹络故障的可能性排除在外。如果从本地访问 WMI 时问题仍然存在,则说明该问题与 Windows XP SP2 中的安全更改⽆关。
如果从本地访问 WMI 时没有出现问题,则说明该问题可能与 Windows 防⽕墙和 DCOM 有关。执⾏从计算机 A 到计算机 B 的远程 WMI 操作时,必须建⽴从计算机 A 到计算机 B 的 DCOM 连接,在计算机 B 上,必须将 Windows 防⽕墙和 DCOM 配置为允许该连接。如果 WMI 操作是同步或半同步的,则只需要⼀个连接。然⽽,如果 WMI 操作是异步的,则需要从计算机 B 到计算机 A 的另⼀个连接。
收起这个图⽚展开这个图⽚
要在计算机 A 和计算机 B 之间建⽴连接 1,请按照下列步骤操作:
1.如果在计算机 B 上启⽤了 Windows 防⽕墙,则应启⽤“Windows 防⽕
墙: 允许远程管理例外”设置。默认情况下,Windows XP SP2 中会启⽤
Windows 防⽕墙。
有关如何启⽤此设置的更多信息,请参阅允许远程管理⼀节。
2.如果发出远程请求的⽤户不是管理员,请确保该⽤户在计算机 B 上拥有
DCOM 远程启动权限。
有关更多信息,请参阅授予 DCOM 远程启动权限⼀节。
只有使⽤异步 WMI 操作时才需要连接 2。我们建议您尽可能使⽤半同步操作。这对性能的影响很⼩,半同步操作可以实现相同的功效,⽽⼜不需要反向连接。
如果必须使⽤异步操作,请按照下列步骤操作:
1.如果在计算机 A 上已启⽤ Windows 防⽕墙,则应打开 DCOM 端⼝。默
认情况下,Windows XP SP2 中会启⽤ Windows 防⽕墙。
有关如何打开 DCOM 端⼝的更多信息,请参阅打开 DCOM 端⼝⼀节。
2.在计算机 A 上,将客户端应⽤程序添加到 Windows 防⽕墙的例外列表
中,这样反向连接才能够完成。
客户端应⽤程序往往是 应⽤程序。 应⽤程
序⽤于在⼀个进程中将结果发还给客户端,该进程可能没有成为 DCOM
服务的权限。脚本和 Microsoft .NET System.Management命名空间都
要靠 应⽤程序来接收异步操作的结果。
有关如何将客户端应⽤程序添加到 Windows 防⽕墙例外列表中的更多
信息,请参阅将客户端应⽤程序添加到 Windows 防⽕墙的例外列表中
⼀节。
3.如果反向连接是作为匿名连接创建的,则应将 DCOM 中的远程启动权限
授予计算机 A 上的匿名登录帐户。在符合下列条件之⼀时,反向连接将
作为匿名连接创建:
o计算机 B 是某个⼯作组的成员。
o计算机 B 与计算机 A 不在同⼀个域内,⽽且计算机 B 所在的域不是⼀个受信任域。
有关更多信息,请参阅授予 DCOM 远程启动权限⼀节。
4.让反向连接尽可能安全。有关更多信息,请访问下⾯的 Microsoft
Developer Network (MSDN) ⽹站:
www.doczj/doc/8006570a844769eae009edd9.html /en-gb/library/aa393614.aspx (www.doczj/doc/8006570a844769eae009edd9.html /en-gb/library/aa393614.aspx)允许远程管理
1.单击“开始”,单击“运⾏”,键⼊ gpedit.msc,然后单击“确定”。
2.在“控制台根⽬录”下,依次展开“计算机配置”、“管理模板”、“⽹
络”、“⽹络连接”、“Windows 防⽕墙”,然后单击“域配置⽂件”。
3.右键单击“Windows 防⽕墙: 允许远程管理例外”,然后单击“属性”。
4.单击“已启⽤”,然后单击“确定”。
授予 DCOM 远程启动权限
1.单击“开始”,单击“运⾏”,键⼊ DCOMCNFG,然后单击“确定”。
2.在“组件服务”对话框中,依次展开“组件服务”、“计算机”,然后
展开“我的电脑”。
3.在⼯具栏上,单击“配置‘我的电脑’”按钮。
随即显⽰“我的电脑”对话框。
4.在“我的电脑”对话框中,单击“COM 安全”选项卡。
5.在“启动和激活权限”下,单击“编辑限制”。
6.在“启动权限”对话框中,如果您的名称或您的组未显⽰在“组或⽤户
名称”列表中,请按照下列步骤操作:
a.在“启动权限”对话框中,单击“添加”。
b.在“选择⽤户、计算机或组”对话框中,将您的名称和组添加到
“输⼊对象名称来选择”框中,然后单击“确定”。
在“启动权限”对话框中,在“组或⽤户名称”框内选择您的⽤户和组。在“⽤户权限”下的“允许”栏中,选择“远程启动”,然后单
击“确定”。打开 DCOM 端⼝
在 Windows 防⽕墙中启⽤端⼝之前,请确保已经在组策略中启⽤了“Windows 防⽕墙: 允许本地端⼝例外”设置。为此,请按照下列步骤操作:
1.单击“开始”,单击“运⾏”,键⼊ gpedit.msc,然后单击“确定”。
2.在“控制台根⽬录”下,依次展开“计算机配置”、“管理模板”、“⽹
络”、“⽹络连接”、“Windows 防⽕墙”,然后单击“域配置⽂件”。
3.右键单击“Windows 防⽕墙: 允许本地端⼝例外”,然后单击“属性”。
4.单击“已启⽤”,然后单击“确定”。
注意:也可使⽤“Windows 防⽕墙: 定义端⼝例外”设置来配置本地端⼝例外。DCOM 端⼝是 TCP 135。要打开 DCOM 端⼝,请按照下列步骤操作:
1.单击“开始”,然后单击“控制⾯板”。
2.双击“Windows 防⽕墙”,然后单击“例外”选项卡。
3.单击“添加端⼝”。
4.在“名称”框中,键⼊ DCOM_TCP135,然后在“端⼝号”框中键⼊ 135。
5.单击“TCP”,然后单击“确定”。
6.单击“确定”。
注意:也可在命令提⽰符处键⼊以下命令打开⼀个端⼝:
netsh firewall add portopening [TCP/UDP][Port][Name]
将客户端应⽤程序添加到 Windows 防⽕墙的例外列表中
在 Windows 防⽕墙中定义程序例外之前,请确保已经在组策略中启⽤了“Windows 防⽕墙: 允许本地程序例外”设置:
1.单击“开始”,单击“运⾏”,键⼊ gpedit.msc,然后单击“确定”。
2.在“控制台根⽬录”下,依次展开“计算机配置”、“管理模板”、“⽹
络”、“⽹络连接”、“Windows 防⽕墙”,然后单击“域配置⽂件”。
3.右键单击“Windows 防⽕墙: 允许本地程序例外”,然后单击“属性”。
4.单击“已启⽤”,然后单击“确定”。
注意:也可使⽤“Windows 防⽕墙: 定义程序例外”设置来配置本地程序例外。
要将客户端应⽤程序添加到 Windows 防⽕墙的例外列表中,请按照下列步骤操作:
1.单击“开始”,然后单击“控制⾯板”。
2.双击“Windows 防⽕墙”,然后单击“例外”选项卡。
3.单击“添加程序”。
4.到要添加的应⽤程序,然后单击“确定”。
5.单击“确定”。
注意:也可在命令提⽰符处键⼊以下命令将程序添加到 Windows 防⽕墙例外列表中:
netsh firewall add allowedprogram [\ProgramName]
[ENABLE/DISABLE]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。