У меня есть код, который использует WMI для поиска домена Windows на компьютерах, соответствующих определенным критериям.
Я получаю исключение COMException. Если я не могу связаться с компьютером, я пытаюсь выполнить запрос. При тестировании на большом домене это может привести к возникновению тысяч исключений, что очень дорого с точки зрения производительности.
Есть ли способ проверить правильность соединения, ДО того, как я сделаю запрос, чтобы я мог предотвратить возникновение этих ошибок?
Упрощенный пример:
foreach(var computer in domain) {
var scope = new ManagementScope(computerPath, options), query);
try {
using (var searcher = new ManagementObjectSearcher(scope)) {
if (searcher.Get().Count == 0) {
// do stuff
}
}
} catch(ComException e) {
// Log and continue
}
}