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