1

有一位绅士回答了我最初问题的 90%,也就是说我现在可以轮询正在运行以下脚本的设备。最终目标是在我支持的网络上的所有桌面/服务器上获得 IP 类型:静态或 DHCP。我有我将在批处理文件中输入的服务器列表,只是寻找代码以从一个位置实际轮询网络上的其他设备。

要查看的输出:

设备名称: IP 地址: MAC 地址: 类型:  
Marvell Yukon 88E8001/8003/8010 PCI 千兆以太网控制器 NULL 00:00:F3:44:C6:00 DHCP
基于通用 Marvell Yukon 88E8056 以太网控制器 192.168.1.102 00:00:F3:44:D0:00 DHCP
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();

txtLaunch.Text = ("Name\tIP Address\tMAC Address\tType" +"\r\n");

foreach (ManagementObject objMO in objMOC)
{
    StringBuilder builder = new StringBuilder();

    object o = objMO.GetPropertyValue("IPAddress");
    object m = objMO.GetPropertyValue("MACAddress");

    if (o != null || m != null)
    {
        builder.Append(objMO["Description"].ToString());
        builder.Append("\t");
            if (o != null)
               builder.Append(((string[])(objMO["IPAddress"]))[0].ToString());
            else
               builder.Append("NULL");
        builder.Append("\t");
        builder.Append(m.ToString());
        builder.Append("\t");
        builder.Append(Convert.ToBoolean(objMO["DHCPEnabled"]) ? "DHCP" : "Static");
        builder.Append("\r\n");
    }

    txtLaunch.Text = txtLaunch.Text + (builder.ToString());  

我愿意接受这里的建议。

4

2 回答 2

1

您只需要在远程机器上实例化您的管理类。

此链接:远程 WMI将为您提供所需的代码。只需遍历每台机器并获取您需要的信息。

您在尝试连接的每台机器上都需要管理员权限。您也许可以缩减它,但这将有助于故障排除。

查看 PowerShell 以及它使用 WinRM 使这些事情变得更加容易。

于 2010-03-30T19:23:40.080 回答
0

如果有些机器是 64 位的,而系统也是 . 因为它搜索 32 位系统,不是吗?它说:“SELECT * FROM Win32_OperatingSystem”

于 2013-05-16T11:50:37.187 回答