2012-06-06 4 views
0

В настоящее время я использую следующие методы, чтобы получить информацию об оборудовании (сетевой адаптер, процессор, жесткий диск)Получить информацию об оборудовании в Windows Server

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor"); 
ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:"""); 

Мое приложение рабочего стола, клиент-сервер (приложение и БД установлены на сервер). Эти методы получают информацию для клиента. Есть ли способ получить информацию об оборудовании для некоторого узла на lan - я хочу получить информацию об оборудовании для сервера?

+0

Взгляните на это [сообщение] [1] [1]: http://stackoverflow.com/questions/3289471/remote-wmi-onnection Там вы, вероятно, получите свой ответ – Tomtom

ответ

0

Это подпрограмма я использую для того, чтобы запросить удаленные хосты (здесь я предполагаю, что я уже настроен WMI на удаленном компьютере):

public string getWMI(string[] parameters) 
    { 
     string ip = parameters[0]; 
     string username = parameters[1]; 
     string password = parameters[2]; 
     string query = parameters[3]; 
     string result = ""; 
     ConnectionOptions options = new ConnectionOptions(); 
     ManagementScope scope; 
     options.Username = username; 
     options.Password = password; 
     try 
     { 
      scope = new ManagementScope("\\\\" + ip + "\\root\\cimv2", options); 
      scope.Connect(); 
      if (scope.IsConnected) 
      { 
       ObjectQuery q = new ObjectQuery(query); 
       ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, q); 
       ManagementObjectCollection objCol = searcher.Get(); 
       foreach (ManagementObject mgtObject in objCol) 
       { 
        result = result + mgtObject.GetText(TextFormat.CimDtd20); 
       } 
      } 
      else 
      { 
      } 
     } 
     catch (Exception e) 
     { 
      writeLogFile("WMI Error: " + e.Message); 
      writeLog("WMI Error: " + e.Message); 
     } 
     return result; 
    } 

В этой подпрограмме я использую прямой запрос, такие как «выберите * от Win32_ComputerSystem ", но вы также можете использовать ManagementClass.

0

Я хочу получить информацию о оборудовании для сервера?

WMI может POIN к другому серверу до тех пор, как:

  • Пьесы предоставляет WMI
  • The fireawall не блокирует его.
  • У вашей учетной записи пользователя есть права на другом сервере.

Простой, как этот.

0

Вы можете использовать пространство имен System.Management и System.Environment для retrieving the hardware information of a machine using C#. Категория «Компьютерная система» объединяет классы, представляющие связанные с оборудованием объекты.

Смежные вопросы