gpt4 book ai didi

c# - 这是 ManagementScope 的错误还是功能?

转载 作者:太空狗 更新时间:2023-10-29 23:46:31 27 4
gpt4 key购买 nike

http://msdn.microsoft.com/en-us/library/system.management.connectionoptions.aspx

ConnectionOptions co = new ConnectionOptions();
co.Username = CreateUserName(Domain, Username);

如果我像这样将前面的代码与 ManagementScope 一起使用:

ManagementScope ms = new ManagementScope("\\\\" + PcName + "\\root\\cimv2:Win32_Service='RpcSs'", co);
ms.Connect();

但如果我使用不正确的域,它仍然有效吗?我应该如何纠正这个。为什么会这样?

编辑 1:当我尝试访问远程机器时会发生这种情况(允许我使用错误的域和正确的管理员帐户和正确的密码),该机器可能具有与我的机器不同的其他凭据和其他域。

编辑 2:在我的例子中,坏域意味着:该机器上不存在的域或当前用户输入的其他域不存在。

编辑 3:即使我使用这段代码:

options.Authority = "ntlmdomain:DOMAIN";//this won't work either.

http://msdn.microsoft.com/en-us/library/system.management.connectionoptions.authority.aspx

最佳答案

WbemTest 是了解 WMI 行为方式的标准。针对您的评论(@Floradu88,5 月 15 日):

1) WbemTest fails on remote connections when passing invalid credentials (invalid domain)

当然,这是预期的行为

2) WbemTest for local connection works "only without credentials"

看起来这可能没有渗透到 ManagementScope 的文档中和 ConnectionOptions ,但是:

You cannot change credentials when connecting to the local computer.
(MSDN: WMI Tasks: Connecting to the WMI Service)

Remarks
Do not specify strUser, strPassword, or strAuthority when making a connection to a local namespace.
(MSDN: IWbemLocator::ConnectServer)


关于您最初的问题,因为您说过 WbemTest 的行为符合预期,我们知道 WMI 正在“工作”并且这不是边缘情况问题,例如目标机器已配置为接受匿名连接。

一种可能是您的 C# WMI 连接正在使用调用用户的凭据,而不是指定的(无效的)凭据。请尝试运行相同的代码,但这次作为本地计算机上的用户,其帐户在远程计算机上不存在。如果失败,则意味着正在使用调用者的凭据而不是您想要的显式凭据。如果发生这种情况,将表明您在连接到远程计算机时模拟手动指定凭据的调用实现过程中出现错误。

关于c# - 这是 ManagementScope 的错误还是功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541658/

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