Хотите сценарий Windows WMI (wmiprvse.exe), чтобы освободить дескриптор файла - PullRequest
2 голосов
/ 19 ноября 2008

Я работаю с файлом сценария VB, написанным кем-то еще, который использует вызовы инструментария управления Windows (WMI) для проверки состояния нескольких служб Windows. Этот скрипт запускается каждые несколько минут по заданному расписанию. Мне нужно обновить / заменить .exe для этих служб.

Я останавливаю сценарий VB, останавливаю службы и удаляю службы, чтобы они больше не появлялись на панели служб (services.msc). К сожалению, WMI (wmiprvse.exe) по-прежнему имеет дескриптор служебных файлов .exe. Я могу освободить дескриптор, перезагрузив систему, но я хочу избежать этого, если это вообще возможно, так что это может быть полностью автоматическое обновление по сценарию.

Есть ли способ заставить WMI освободить его дескриптор на .exe? Пожалуйста, имейте в виду, что я новичок в работе с WMI.

Ответы [ 2 ]

1 голос
/ 19 ноября 2008

Я также ищу решение этой проблемы. Также хотел бы понять, почему wmiprsve имеет дескрипторы для некоторых из моих исполняемых файлов службы, но не для других.

Обходной путь, который я использую, - убить процесс wmiprvse. Вы можете использовать инструменты командной строки SysInternals (pslist, pskill) для автоматизации получения идентификатора процесса и выполнения kill.

0 голосов
/ 11 июля 2014

Вы можете просто перезапустить службу WMI (winmgmt), чтобы заставить ее выпускать ваши файлы. Если ваша служба не зарегистрирована при запуске WMI, она не будет блокировать файлы.

Остановка службы, удаление службы, перезапуск WMI, замена файлов, запуск службы.

...