Любая попытка обнаружить эту ситуацию будет иметь состояние гонки: выключение системы может начаться сразу после того, как вы обнаружите, что оно не выключается, но до того, как вы попытаетесь выполнить операции, которые не будут работать во время выключения.Таким образом, ваш подход к решению проблемы неверен.Вместо этого вам просто нужно обработать ошибки чтения WMI и определить, являются ли они причиной сбоя системы, и в этом случае прервать операцию или продолжить каким-либо другим способом, который имеет смысл.
Возможно, будет возможно использоватьсвоего рода механизм обнаружения синхронного выключения, где вы можете фактически заблокировать / задержать выключение на короткий промежуток времени, прежде чем оно продолжится, и выполнять обработку в этом интервале.Если так, то это также был бы безопасный подход без условий гонки.