2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« WSHから他のWSHを操作する。(その3) | トップページ | 常駐のWSHスクリプトを外部からの指示で終了する。 »

2009年3月27日 (金)

WSHスクリプトの強制終了は避けましょう。

Excelなど、アウトプロセスサーバのオブジェクトを参照するWSHスクリプトを強制終了すると、参照カウンタが残って、サーバが終了できなくなったりします。

APIのTerminateProcess()
タスクマネジャの「プロセスの終了」
タスクスケジューラの「タスクの終了」
TaskKill.exe
CScriptのCTRL+C
WScript.ShellのExec().Terminate()
などの強制終了は避けられるなら避けたほうがよいでしょう。

一方、WScript.Timeoutによる終了ではオブジェクト参照が解放されます。

万一の暴走やハングアップの対策に、WScript.Timeoutを設定しておくとよいでしょう。
スクリプトのソース内で、WScript.Timeout=秒
コマンドラインのオプションで、//T:秒
ショートカットファイル(.WSH)で、Timeout=秒

« WSHから他のWSHを操作する。(その3) | トップページ | 常駐のWSHスクリプトを外部からの指示で終了する。 »