Удаленный опрос нескольких рабочих столов / серверов в сети для определения типа IP: статический или DHCP - PullRequest
1 голос
/ 30 марта 2010

Если бы джентльмен ответил на 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
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());  

Я открыт для рекомендаций здесь.

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Вам просто нужно создать экземпляр класса управления на удаленном компьютере.

Эта ссылка: Удаленный WMI даст вам код, который вам нужен. Просто перейдите к каждой машине и получите необходимую информацию.

Вам потребуются права администратора на каждой машине, к которой вы пытаетесь подключиться. Вы можете уменьшить масштаб, но это поможет с устранением неполадок.

Посмотрите на PowerShell, так как с WinRM это намного проще.

0 голосов
/ 16 мая 2013

Что мы будем делать, если некоторые машины 64-битные, а также системы. Потому что он ищет 32-битные системы, не так ли? Он говорит: «ВЫБРАТЬ * ИЗ Win32_OperatingSystem»

...