2008-11-19 60 views
2

我正在使用由其他人使用Windows Management Instrumentation(WMI)調用檢查多個Windows服務的狀態編寫的VB腳本文件。此腳本按設定的時間表每隔幾分鐘運行一次。我需要升級/替換這些服務的.exe文件。想要腳本Windows WMI(wmiprvse.exe)釋放文件上的句柄

我停止VB腳本,停止服務並卸載服務,以使它們不再出現在「服務」面板(services.msc)中。不幸的是,WMI(wmiprvse.exe)仍然對服務.exe文件有句柄。我可以通過重新啓動系統來釋放句柄,但是我希望儘可能避免這種情況,因此可以完全腳本化/自動升級。

有沒有辦法強制WMI釋放它在.exe上的句柄?請記住我是與WMI合作的新手。

回答

1

我也在尋找解決這個問題的辦法。還想了解wmiprsve爲什麼在我的一些服務可執行文件上處理,而不是在其他服務上執行。

我使用的解決方法是殺死wmiprvse進程。您可以使用SysInternals命令行工具(pslist,pskill)自動獲取進程ID並執行kill。

0

您可以簡單地重新啓動WMI服務(winmgmt)來強制它釋放文件。如果您的服務在WMI啓動時未註冊,則它不會鎖定這些文件。

停止服務,卸載服務,重新啓動WMI,替換文件,啓動服務。

相關問題