C# 远程轮询网络上的多个台式机/服务器以确定IP类型:静态或DHCP

C# 远程轮询网络上的多个台式机/服务器以确定IP类型:静态或DHCP,c#,networking,desktop,polling,C#,Networking,Desktop,Polling,有一位先生回答了我原来问题的90%,也就是说我现在有能力对我正在运行下面脚本的设备进行投票。最终目标是在我支持的网络上的所有桌面/服务器上获得IP类型:静态或DHCP。我将在批处理文件中输入服务器列表,只是寻找从一个位置实际轮询网络上其他设备的代码 要查看的输出: Device name: IP Address: MAC Address: Type: Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Control

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

要查看的输出:

Device name: IP Address: MAC Address: Type: Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller NULL 00:00:F3:44:C6:00 DHCP Generic Marvell Yukon 88E8056 based Ethernet Controller 192.168.1.102 00:00:F3:44:D0:00 DHCP
我对这里的建议持开放态度

您只需要在远程计算机上实例化管理类

此链接:将为您提供所需的代码。只需在每台机器上循环,获取所需信息

您将需要在尝试连接到的每台计算机上具有管理员权限。您可以将其缩小,但这将有助于排除故障


查看PowerShell,它使WinRM更容易实现这一点。

您只需要在远程计算机上实例化管理类

此链接:将为您提供所需的代码。只需在每台机器上循环,获取所需信息

您将需要在尝试连接到的每台计算机上具有管理员权限。您可以将其缩小,但这将有助于排除故障


看看PowerShell,因为它使WinRM更容易实现这些功能。

如果有些机器是64位的,而系统也是64位的,我们该怎么办。因为它搜索32位系统,不是吗?
它说:“从Win32_OperatingSystem中选择*”

如果有些机器是64位的,而有些系统也是64位的,我们该怎么办。因为它搜索32位系统,不是吗? 上面写着:“从Win32_操作系统中选择*”

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());