タスク スケジューラが .vbs スクリプトを正常に実行できない

タスク スケジューラが .vbs スクリプトを正常に実行できない

答えが明白であれば申し訳ありません。

私たちは、サーバー上の.vbsスクリプトを介して実行するいくつかの日常的なタスクを持っています(タスクスケジューラ) を導入し、数か月間は問題がなかったのですが、最近問題が発生しました。.vbs スクリプトが正常に実行されなくなりました (常にタイムアウトになります)... ただし、手動では問題なく実行できました (!)。

タスク スケジューラに問題が発生する理由がよくわからなかったので、少し「創造的思考」を試し、別の方法で .vbs を実行してみることにしました。つまり、タスク スケジューラによって実行される .bat ファイルを介して実行します。ここでも奇妙な問題が発生しましたが、今回はデバッグ情報が少し増えました。

タスク スケジューラによって実行される .bat ファイルは、次のとおりです。

CScript "C:\location\script.vbs" > Log.txt

しかし、実行しようとすると、タスク スケジューラは次のエラーで失敗します。

0x1:不正な関数が呼び出されたか、不明な関数が呼び出されました。

Log.txt (上記の .bat ファイルからの出力) には次のように記載されています:

CScript エラー: Windows スクリプト ホストの初期化に失敗しました。(このコマンドを処理するのに十分な記憶域がありません。)

しかし、これを見てみましょう:.bat ファイルは、ダブルクリックで実行すると、(vbs スクリプトなどすべて) 完璧に実行されます。タスク スケジューラで実行する場合のみ問題が発生します。一体何ですか?

走っていたWindows Server 2008 R2(x64) はい、タスク スケジューラの結果は、ユーザーがログインしているかどうかに関係なく同じです。また、スクリプトを手動で正常に実行できるユーザーは、タスク スケジューラでスクリプトを実行するユーザーと同じです。

この奇妙な問題に対する助けに感謝します!

答え1

結局、メモリ不足でした。サーバーを再起動して 16 GB を再び解放すると、結局実行できるようになりました。ユーザー権限に問題はありません。ユーザー資格情報に問題はありません。単に奇妙なメモリの問題でした (SQL 構成マネージャーを起動できなかったり、Windows Update から更新プログラムを正常にインストールできなかったりしたときに、何か問題があることに気付きました)。

タスク スケジューラには RAM を取り戻す権限がなかったのに対し、手動で .bat を実行した管理者ユーザーには権限があったのではないかと思います。

厄介な問題が発生。*すすり泣く*

答え2

スケジュールされたタスクの権限に問題があるようです。タスクに Windows Script Host を起動するために必要な資格情報が割り当てられていることを確認してください。タスク マネージャー内に、タスクが実行されるアカウント資格情報を定義する場所があるはずです。

関連情報