【问题标题】:Resolving the WMI DNS Host Name解析 WMI DNS 主机名
【发布时间】:2010-05-28 14:03:42
【问题描述】:

我正在尝试比较从 AD 检索到的机器名称和我想使用 WMI 从机器获取的 DNS 主机名。

我目前有:

foreach (SearchResult oneMachine in allMachinesCollected)
            {
                pcName = oneMachine.Properties["name"][0].ToString();
                ConnectionOptions setupConnection = new ConnectionOptions();
                setupConnection.Username = USERNAME;
                setupConnection.Password = PASSWORD;
                setupConnection.Authority = "ntlmdomain:DOMAIN";
                ManagementScope setupScope = new ManagementScope("\\\\" + pcName + "\\root\\cimv2", setupConnection);
                setupScope.Connect();

                ObjectQuery dnsNameQuery = new ObjectQuery("SELECT * FROM Win32_ComputerSystem");
                ManagementObjectSearcher dnsNameSearch = new ManagementObjectSearcher(setupScope, dnsNameQuery);
                ManagementObjectCollection allDNSNames = dnsNameSearch.Get();
                string dnsHostName;
                foreach (ManagementObject oneName in allDNSNames)
                {
                    dnsHostName = oneName.Properties["DNSHostName"].ToString();
                    if (dnsHostName == pcName)
                    {
                        shutdownMethods.ShutdownMachine(pcName, USERNAME, PASSWORD);
                        MessageBox.Show(pcName + " has been sent the reboot command");
                    }
                }
            }
        }

但我得到一个 ManagementException >> dnsHostName = oneName.Properties["DNSHostName"].ToString();

【问题讨论】:

    标签: c# dns wmi


    【解决方案1】:

    根据您连接到该属性的操作系统,该属性将不可用。您可以从documentation 看到它在 Windows 2000 和 XP 上不可用。但是,它在 Win32_NetworkAdapterConfiguration 类中可用,但您将收到多个对象,您必须循环访问这些对象才能获取名称,因为它们中的大多数都为空。

    另外,dnsHostName = oneName.Properties["DNSHostName"].ToString(); 也不正确。应该是dnsHostName = oneName.Properties["DNSHostName"].Value.ToString()。同样,如果您决定使用 Win32_NetworkAdapterConfiguration 请记住它可以为空。

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 2019-04-30
      • 1970-01-01
      • 2019-01-24
      • 2021-07-17
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 2020-10-20
      相关资源
      最近更新 更多