web-dev-qa-db-ja.com

メッセージボックスを使用してWindows 7タスクスケジューラでVBSスクリプトを開始する方法

Win7 x64 Professionalを使用していますが、Windowsタスクスケジューラを使用してVBSスクリプトを実行しようとしています。私の問題は、スクリプトを直接開始したスクリプトとはまったく異なる動作をすることです。たとえ、高い特権で開始し、同じユーザーを使用していてもです。

私が気づいたことの1つは、たとえば、画面にメッセージボックスを出力できないことです。

Windows XPでは、これらの問題の多くを修正する「デスクトップとの対話を許可する」というオプションがあったことを覚えていますが、Win7ではこれらのオプションを見つけることができません。

また、Wscript.exeを実行し、scriptfileオプションをコマンドラインオプションとして渡そうとしましたが、タスクスケジューラが正しく開始したと言っても、スクリプトがまったく開始されません。

エクスプローラーで直接スクリプトを起動した場合と同じ動作をするために、Win7でVBSを起動するための最良の方法は何ですか?

10
Erik

CScript.exeなどのコマンドがダイアログボックスではなくコンソールに出力されるように、WScript.exeではなくWScript.Echoを使用する必要があります。ご指摘のとおり、スケジュールされたタスクは、スクリプトのブロックを引き起こす可能性のあるメッセージボックスやUI要素を避ける必要があります。

次のようにスクリプトをスケジュールすることをお勧めします。

C:\Windows\System32\CScript.exe //Nologo //B X:\PathToYourScript\YourScript.vbs

私が選択するオプションは、「ロゴ表示の防止」と「バッチモード」です。コマンドプロンプトでCScript /?を実行して、オンラインヘルプを参照してください。

17
Stephen Quan

このb/cを投稿するだけで、しばらくの間w /構文に苦労しました...
誰もが.batを使用してタスクスケジューラで.vbsを実行すると言っています...

.batファイルは不要です!しかし...細字:

タスクスケジューラからVBSを実行するには、ショートカット/ .lnkを作成するか、直接呼び出します。

!!注意!!
ファイルパスに引用符を含めることはできません。ファイルパスにスペースを含めることはできません。このため、VBSパス/名前がすでに設定されている場合は、これらのルールを満たすためのショートカットを作成する方が簡単です。

1
h pic