Date: 04.09.2017 11:51:45
"почему так может происходить?"
левый операнд операции "." или "[]" равен null
"как этого избежать?!"
выяснять с помощью отладчика какая переменная равна null, исправлять это (если возможно), добавлять проверку на null перед использованием переменных
Date: 05.09.2017 7:50:35
"то есть если ничего не нашли, то и в цикл мы не должны заходить"
Не факт. Насколько я вижу, нигде не документировано, что должна вернуться именно пустая коллекция. Посмотрите в возвращаемом ManagementObject свойства Options, Properties и др. Может они помогут понять, что происходит.
Вообще, когда ошибка воспроизводится 1 раз из 300, это заставляет думать об аппаратной проблеме.
Автор: VadimTagil