Tengo una aplicación .NET que ejecuta consultas WMI en todos los equipos de dominio para encontrar el usuario que ha iniciado sesión; hace sonar cada computadora para ver si está en línea o no, luego ejecuta la consulta real.¿Cómo establecer un tiempo de espera en las consultas de WMI?
Fragmento de código:
try
{
string loggedonuser = null;
string computername = "ComputerToQuery";
ConnectionOptions co = new ConnectionOptions();
co.Username = "DOMAIN\MyUser";
co.Password = "MyPassword";
co.Impersonation = ImpersonationLevel.Impersonate;
co.Authentication = AuthenticationLevel.Default;
ManagementPath mp = new ManagementPath(@"\\" + computername + @"\root\cimv2");
ManagementScope ms = new ManagementScope(mp,co);
ms.Connect();
ObjectQuery oq = new ObjectQuery("SELECT username FROM Win32_ComputerSystem");
ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);
foreach(ManagementObject mo in mos.Get())
loggedonuser = (String) mo["username"];
}
catch(Exception e)
{
// Handle WMI exception
}
El problema: a veces la consulta WMI cuelga indefinidamente.
¿Cómo puedo establecer un tiempo de espera en él?
Genial, funciona. – Massimo