【问题标题】:What's the WMI limitation?WMI 限制是什么?
【发布时间】:2011-08-01 07:28:04
【问题描述】:

我有两台计算机,A和B,它们在不同的域中,它们之间没有信任连接,我可以在A上使用WMI来操作B,还是相反? 是的,根据您和 MSDN 的回答,我知道我可以实现它。 事实是虽然我使用管理员进行WMI操作,但是通过WMI远程启动的进程仍然没有管理员权限(在任务管理器中进程用户名仍然显示为管理员)。

你能告诉我原因吗?

提前谢谢你。

【问题讨论】:

    标签: wmi


    【解决方案1】:

    如果我正确理解您的问题: WMI(Windows 管理工具)本身可以在您提到的条件下运行。它就像 sql 风格的数据库,它可以在计算机上运行。

    如果这不是您期望的答案,请澄清您的问题...

    【讨论】:

    • 谢谢你,Lixas。我已经解决了我的问题,请您帮忙看看吗?
    • @Daniel 哦,我明白了。是的,您可以在 wmi 中连接到不同的域机器,提供适当的 wmi moniker(连接字符串)。在这里阅读更多:msdn.microsoft.com/en-us/library/aa389290%28v=vs.85%29.aspxVB 中很少有如何格式化名字对象的示例
    • 谢谢你,Lixas。你能帮忙检查一下我回复 nIKUNJ 的评论吗?
    【解决方案2】:

    WMI 的最大限制是,它需要管理员级别的凭据才能进行 WMI 操作。
    现在,在您的情况下,您可以使用本地管理员级别用户(具有本地计算机 B 的管理员权限)连接到计算机 B(在不同的域中)。您也可以使用对机器 B 的域具有管理员权限的域级别管理员用户。

    【讨论】:

    • 你好,其实我虽然是用管理员来做WMI操作,但是通过WMI远程启动的进程还是没有管理员权限(在任务管理器中进程用户名还是显示为管理员),可以你知道为什么吗?
    • 您必须授予您正在访问的 WMI 类的管理员权限。(控制面板-->计算机管理-->WMI 控制)
    • 连接到 wmi 时,您可以提供不同的安全级别和权限。 technet.microsoft.com/en-us/library/ee156574.aspx 将为您解释更多。例如,在我的应用程序中,我将能够读取系统的所有日志,除了安全日志,因为我没有提供适当的名字。所以,这可以解释你的问题
    • ConnectionOptions options1 = new ConnectionOptions(); options1.Username = "测试"; //域管理员选项1.Password = "密码"; options1.EnablePrivileges = true; options1.Impersonation = ImpersonationLevel.Impersonate; options1.Authentication = AuthenticationLevel.Call; options1.Authority = "ntlmdomain:mydomain"; Console.WriteLine("开始远程连接。"); ManagementScope scope1 = new ManagementScope(@"\\" + "myIp" + @"\root\CIMV2", options1); scope1.Connect();
    • 嗨,非常感谢你们俩。以上是我之前通过WMI远程启动的代码,请大家帮忙看看是什么问题?
    【解决方案3】:

    答案是默认情况下 WMI 不会将您的身份验证级别传递给远程主机。为此,您的帐户需要正确的“委托授权”,这赋予了在域中充当 any 帐户的非常危险的权利,然后您需要更改 WMI 中的身份验证类型代码来匹配这个级别。请参阅此 MS 链接: http://msdn.microsoft.com/en-us/library/windows/desktop/aa389288%28v=vs.85%29.aspx

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 2010-09-11
      • 2012-03-22
      • 2014-11-29
      • 2011-09-04
      • 2019-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多