2

Windows Management Instrumentation(WMI)呼び出しを使用していくつかのWindowsサービスのステータスを確認する他の誰かによって作成されたVBスクリプトファイルを使用しています。このスクリプトは、設定されたスケジュールで数分ごとに実行されます。これらのサービスの.exeをアップグレード/交換する必要があります。

VBスクリプトを停止し、サービスを停止し、サービスをアンインストールして、サービスパネル(services.msc)に表示されないようにします。残念ながら、WMI(wmiprvse.exe)には、サービスの.exeファイルに対するハンドルがまだあります。システムを再起動することでハンドルを解放できますが、完全にスクリプト化/自動化されたアップグレードになるように、可能な限りそれを避けたいと思います。

WMIに.exeのハンドルを解放させる方法はありますか?WMIを使用するのは初めてです。

4

2 に答える 2

1

この問題の解決策も探しています。また、wmiprsve が一部のサービス実行可能ファイルのハンドルを持っているのに、他の実行可能ファイルのハンドルを持っていない理由も理解したいと思います。

私が使用している回避策は、wmiprvse プロセスを強制終了することです。SysInternals コマンド ライン ツール (pslist、pskill) を使用して、プロセス ID の取得と kill の実行を自動化できます。

于 2008-11-19T15:54:33.623 に答える
0

WMI サービス (winmgmt) を再起動するだけで、強制的にファイルを解放できます。WMI の開始時にサービスが登録されていない場合、ファイルはロックされません。

サービスの停止、サービスのアンインストール、WMI の再起動、ファイルの置き換え、サービスの開始。

于 2014-07-11T08:37:52.543 に答える