【问题标题】:Want to script Windows WMI (wmiprvse.exe) to release handle on file想要编写 Windows WMI (wmiprvse.exe) 脚本以释放文件中的句柄
【发布时间】:2010-09-23 01:43:34
【问题描述】:

我正在处理由其他人编写的 VB 脚本文件,该文件使用 Windows Management Instrumentation (WMI) 调用来检查多个 Windows 服务的状态。该脚本按设定的计划每隔几分钟运行一次。我需要升级/替换这些服务的 .exe。

我停止了 VB 脚本,停止了服务,并卸载了服务,因此它们不再出现在“服务”面板 (services.msc) 中。不幸的是,WMI (wmiprvse.exe) 仍然拥有服务 .exe 文件的句柄。我可以通过重新启动系统来释放句柄,但我想尽可能避免这种情况,因此这可以是一个完全脚本化/自动化的升级。

有没有办法强制 WMI 释放它在 .exe 上的句柄?请记住,我是使用 WMI 的新手。

【问题讨论】:

    标签: scripting windows-services wmi


    【解决方案1】:

    您可以简单地重新启动 WMI 服务 (winmgmt) 以强制它释放您的文件。如果您的服务在 WMI 启动时未注册,则不会锁定文件。

    停止服务、卸载服务、重启WMI、替换文件、启动服务。

    【讨论】:

      【解决方案2】:

      我也在寻找解决这个问题的方法。还想了解为什么 wmiprsve 对我的一些服务可执行文件有句柄,但对其他可执行文件没有。

      我使用的解决方法是终止 wmiprvse 进程。您可以使用 SysInternals 命令行工具(pslist、pskill)自动获取进程 ID 并执行终止。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-10
        相关资源
        最近更新 更多