У меня есть интересная/раздражающая проблема с некоторыми VBScripts, запущенными на Windows 2003 Server (они отлично работают на XP).Ошибка WMI через некоторое время
Сценарии в основном периодически вызывают объекты WMI для извлечения информации о производительности и записи в файл журнала. Он запускается по расписанию задач в 12:05 каждое утро и работает до полуночи (или если он не будет терпеть крах). Он принадлежит Администратору, и задача - "cscript xx.vbs blah blah blah"
.
Иногда это работает в течение нескольких часов, иногда всего несколько минут. Вызовы имеют вид:
set objWMI = getObject("winmgmts:\\.\root\cimv2")
: : :
do lots of times:
set itemCpu = wmi.get("Win32_PerfRawData_PerfOS_Processor.Name='_Total'")
Ошибка она возвращается с это диалоговое окно с указанием, что удаленный вызов процедур не удалось выполнить, но никакой дополнительной информации (она действительно дает 32-битный шестнадцатеричное число и I» я буду обновлять этот вопрос с ним в следующий раз, когда это произойдет, но мои поисковые запросы Google оказались очень универсальными страницами, поэтому я не уверен, что код поможет).
Он также используется врезаться из (та же ошибка) с помощью следующей строки, но я не видел проблемы с этим один, так как я изменил его использовать Win32_Perf Raw Data_PerfOS_Memory.
set colMem = wmi.execQuery("select AvailableKBytes" & _
" from Win32_PerfFormattedData_PerfOS_Memory",,48)
Полагаю, что это не связано с сетью, так как оно находится на одной машине.
Я также пытался установить objWMI на ничего и делать каждый getObject каждый раз через цикл, но это не помогло.
Еще одна возможная проблема: она фактически работает внутри рабочей станции VMWare (но это также и XP). На следующей неделе я смогу запустить физическую установку Win2k3, чтобы протестировать ее там.
Странный тонкий, он иногда работает в течение нескольких часов без проблем, собирая данные и отправляя их в файл журнала. В других случаях он падает через десять минут.
Любые идеи от гуру Windows среди нас?
UPDATE:
Хорошо, он, наконец, снова не удалось. Вот мое небольшое усилие при захвате экрана:
+-------------------------------------------------+
| Windows Script Host |X|
+-------------------------------------------------+
|/ Script: C:\Program Files\blah\blah.vbs |
| /\ Line: 271 |
| Char: 2 |
| Error: The remote procedure call |
| failed and did not execute. |
| Code: 800706BF |
| Source: SWbemServicesEx |
+-------------------------------------------------+
Линия 271:
set itemCpu = wmi.get("Win32_PerfRawData_PerfOS_Processor.Name='_Total'")
с wmi
будучи предварительно установлен с:
set wmi = getObject("winmgmts:\\.\root\cimv2")
(это один непрерывно переучреждения -created внутри цикла, поэтому я не думаю, что проблема связана с устаревшим соединением RPC).
Об ошибках в событии, ничего? – lsalamon
Ничего в телезрителе событий (я должен был упомянуть об этом). – paxdiablo