Тайм-аут в удаленном WMI-запросе Powershell - PullRequest
1 голос
/ 29 февраля 2012

У меня на предприятии около 3500 компьютеров, которыми я должен управлять с помощью Microsoft System Center Configuration Manager (SCCM).Клиент SCCM в значительной степени зависит от WMI, а иногда и WMI прерывается по любой причине.Я разрабатываю сценарий Powershell, который удаленно восстанавливает WMI на этих неработающих клиентах.

У большинства клиентов, которым я пытаюсь удаленно запрашивать WMI, нет проблем, в то время как другие просто вешают мой сценарий на минуты и даже бесконечно.Я преодолел некоторые из них, используя тип объекта WMISearcher и свойства ReturnImmediately и Timeout Options, но некоторые из них остаются неопределенными.

Я ищу что-то, что можно добавить в этот скрипт, чтобыклиент может повесить мой скрипт из-за проблемы WMI.

Вот небольшой скрипт, который у меня есть до сих пор.Сценарий висит в строке "$ oResult = $ oWmi.Get ()".

$oWmi = [WMISearcher]'';
$oWmi.Options.ReturnImmediately = $true;
$oWmi.Options.Timeout = '0:0:2';
$oWmi.Scope.Path = "\\$PCNAME\root\cimv2";
$oWmi.Query = 'SELECT * FROM Win32_OperatingSystem';
$oResult = $oWmi.Get();
$oResult | Out-Null 

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

Рассматривали ли вы выполнение этих запросов в качестве фоновых заданий?Затем вы можете просто установить таймер на задание из основного сценария, и если он не завершится к истечению времени, вы можете просто удалить задание.

0 голосов
/ 29 февраля 2012

Не может быть напрямую связано с вашей проблемой, но знаете ли вы об этом: http://support.microsoft.com/kb/932303?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...