gpt4 book ai didi

c# - "Access is denied"WMI 异常

转载 作者:太空狗 更新时间:2023-10-30 01:11:42 25 4
gpt4 key购买 nike

我正在研究 WMI。我想访问远程系统信息。以下代码适用于环回或本地主机,但当我尝试访问远程计算机时,它显示以下异常错误:

Access is denied. (Exception from HRESULT:0X8005(E_ACCESSDENIED))

当在 2 个系统之间使用 switch 时。

The RPC server Is unavailable. (Exception from HRESULT: 0x800706BA)

当两个系统直接连接时。


两个系统上的操作系统:Windows Service Pack 2。
防火墙 = 已阻止。
远程过程服务 = 正在运行。

工具:.NET Visual Studio 2008 C#

代码:

try
{
ConnectionOptions _Options = new ConnectionOptions();
ManagementPath _Path = new ManagementPath(s);

ManagementScope _Scope = new ManagementScope(_Path, _Options);
_Scope.Connect();
ManagementObjectSearcher srcd = new ManagementObjectSearcher("select * from Win32_DisplayConfiguration");
foreach (ManagementObject obj in srcd.Get())
{
//listBox5.Items.Add(obj.Properties.ToString());
foreach (PropertyData aProperty in obj.Properties)
{
listBox1.Items.Add(aProperty.Name.ToString() + " : " + aProperty.Value);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

最佳答案

注意:如果您不指定凭据,将使用运行用户的凭据,因此这些凭据必须有效才能访问远程计算机,通常,此帐户必须是远程机器上的管理员(不适用于所有对象,但只是为了确定)。

如果您使用在两台计算机上均有效的域帐户登录,则它可以开箱即用。

如果您不在域环境中,只需指定凭据即可。

试试这个:

ConnectionOptions co = new ConnectionOptions();co.Impersonation = ImpersonationLevel.Impersonate;co.Authentication = AuthenticationLevel.Packet;co.Timeout = new TimeSpan(0, 0, 30);co.EnablePrivileges = true;co.Username = "\\";co.Password = "";ManagementPath mp = new ManagementPath();mp.NamespacePath = @"\root\cimv2";mp.Server = "";               ///Regard this!!!!ManagementScope ms = new ManagementScope(mp, co);ms.Connect();ManagementObjectSearcher srcd;srcd = new ManagementObjectSearcher  (    ms, new ObjectQuery("select * from Win32_DisplayConfiguration"));

这对我一直有效。

在我看来,出现问题是因为您没有在 ManagementPath 中指定远程计算机。使用默认值创建的 ManagementPath 始终指向本地计算机。如果您只是指定本地计算机的凭据,这是不允许的,而且总是会失败。

br--马布拉

关于c# - "Access is denied"WMI 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com