Como definir um tempo limite nas consultas WMI?
Eu tenho um aplicativo .NET que executa consultas WMI em todos os computadores do domínio para encontrar o usuário conectado; ele envia um ping para cada computador para descobrir se está online ou não e, em seguida, executa a consulta rea
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
}
O problema: às vezes a consulta WMI permanece indefinidament
Como posso definir um tempo limite?