Efectuar una consulta en WMI

2187 vistas

El siguiente código permite efectuar una consulta WMI especificando la mayorÃa de las propiedades posibles, es decir, el ordenador sobre el cual debe efectuarse la consulta asà como el usuario a usar.



csharp
  1. ConnectionOptions connexionOption = new ConnectionOptions();
  2. ManagementObject miManagementObject;
  3. System.Management.ManagementScope miManagementScope;
  4. System.Management.ObjectQuery objConsulta;
  5. ManagementObjectCollection collectionResultado;
  6. ManagementObjectSearcher miConsulta;
  7. connexionOption.Username = "mi_login";
  8. connexionOption.Password = "mi_password";
  9. string marcaBios;
  10. try
  11. {
  12.   miManagementScope = new System.Management.ManagementScope("\\\\" + maquinaDestino + "\\root\\cimv2", connexionOption);
  13.   objConsulta = new System.Management.ObjectQuery("SELECT * FROM Win32_BIOS");
  14.   miConsulta = new ManagementObjectSearcher(miManagementScope, objConsulta);
  15.   collectionResultado = miConsulta.Get();
  16.   foreach (int miManagementObject in collectionResultado)
  17.   {
  18.     marcaBios = miManagementObject("Fabricante");
  19.   }
  20.   Response.Write(marcaBios);
  21. }
  22. catch (Exception ex)
  23. {
  24.   Response.Write(ex.Message);
  25. }



O más sencillo, si no tenemos que hacer la consulta en otro ordenador y si tenemos derechos administrativos en la máquina local...



csharp
  1. SelectQuery Info_bios = new SelectQuery("Win32_bios");
  2. ManagementObjectSearcher Bios_Information = new ManagementObjectSearcher(Info_bios);
  3. ManagementObject Info;
  4. foreach (int Info in Bios_Information.Get())
  5. {
  6.   Response.Write("Bios version: " + info("version").ToString());
  7. }