在VB.Net中,我尝试使用不同的凭据连接到本地计算机上的WMI(用户没有管理员权限),我得到了这个例外:
«用户凭据不能用于本地连接»
以下是代码:
Dim path As ManagementPath = Nothing
Dim options As ConnectionOptions = Nothing
Dim scope As ManagementScope = Nothing
path = New ManagementPath("\\" & vServerName & "\root\CIMV2")
options = New ConnectionOptions
options.Username = vUsername
options.Password = vPassword
Scope = New ManagementScope(path, options)
Scope.Connect()
答案 0 :(得分:4)
当没有管理员权限的用户当前登录时,您无权访问某些wmi实例。(这仅适用于本地WMI连接)
太蹩脚了!但是,如果您可以以管理员组成员的身份运行您的应用程序,那么您应该解决问题。
补充说明:
If you write a windows service with **local system** user, then you'll have full access to all wmi classes.
注意:我已经尝试授予我的受限用户访问所需wmi操作的适当权限,但似乎它不会那样工作。在这种情况下,您必须在以下3个位置设置权限:
Start->Run->dcmoncnfg->Component Services->Computers->My Computer->Properties->COM security tab
Start->Run->dcmoncnfg->Component Services->Computers->My Computer->DCOM Config->Windows Management and Instrumention->Properties->Security tab
Start->Run->wmimgmt.msc->WMI Control(Local)->Properties->Root(just highlight)->Security tab
答案 1 :(得分:4)
我知道这个问题已经过时了,但是我尝试了上面的步骤并且没有用。我发现工作的是:
80041064 - 用户凭据不能用于本地连接
原因
当您指定用于监视正在运行OpManager的计算机的用户名和密码时,会遇到此错误。
解决方案
不要为localhost指定用户名和密码。要解决此问题,请从设备快照页面的“密码”链接中删除已配置的用户名和密码。
答案 2 :(得分:0)
通过键入wmic输入wmic提示符,然后输入。然后输入:
/user:""
这将使尝试运行命令的用户为空。不知道,您可能需要对密码进行类似的操作。