web-dev-qa-db-ja.com

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

これが本当に明白な答えを持っているならば、お詫びします!

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

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

タスクスケジューラによって実行される.batファイルは...にすぎません。

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

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

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

Log.txt(上記の.batファイルからの出力として)は次のように述べています。

CScriptエラー:Windows ScriptHostの初期化に失敗しました。 (このコマンドを処理するのに十分なストレージがありません。)

しかし、これを入手してください:ダブルクリックで実行された場合、.batファイルは完全に実行されます(vbsスクリプトとすべて)!タスクスケジューラによって実行された場合にのみ問題が発生します。なんてこったい?

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

この奇妙な問題の助けをありがとう!

1

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

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

ワームの缶:開封。 * sob *

3

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

0
Jay