Efectuar una consulta en WMI

2311 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. }