web-dev-qa-db-ja.com

Windows Server 2008のスケジュールされたタスクは、「ユーザーがログオンしているときのみ実行」でのみ機能します

Rscript.exeと対象のファイルを起動してRスクリプトを実行するように設定されたスケジュールされたタスクがあります。

オプションで実行すると、このタスクは正常に完了します

「ユーザーがログオンしているときにのみ実行する」。

タスクを自分なしで実行するようにスケジュールする必要があるため、オプションをオンにしました。

「ユーザーがログオンしているかどうかにかかわらず実行する」

パスワードを教えてくれました。

私はこれをテストする必要があったので、「実行」をクリックして、それがすぐに失敗し、

0x1

スクリプトの実行時にRによって作成されたログファイルがありますが、スケジュールされたタスクはこのログが作成される前に失敗したようです。

私は this resource を見つけました。これは、「ユーザーがログオンしているかどうか」オプションがチェックされているときにタスクを手動で正常に実行できない場合を示しています。

そのことを念頭に置いて、代わりにタスクを数分後に実行するようにスケジュールしました。 Rscriptを起動してログを作成する前に、タスクは再び0x1実行結果で失敗しました。

私はこのプロセスを数回繰り返し、結果は毎回同じでした。

タスクのプロパティを見ると、1秒で「アクション完了」ステップに達し、ゼロ以外の戻りコードが返され、オペレーションコードが「(2)」で失敗したことがわかります。

enter image description here

タスクの定義は次のとおりです。

Action: Start a program
Program/script: cmd
Add arguments:

    /c E:/PROGRA~1/R/R-33~1.1/bin/Rscript.exe T://code//Forecast.R  >> T://code//Forecast.log 2>&1
3
Hack-R

ユーザーとしてタスクを実行するには、「バッチジョブとしてログオン」セキュリティ権限が必要です。

管理ツール->ローカルセキュリティポリシー->ローカルポリシー->ユーザー権利の割り当て->バッチジョブとしてログオン。

イベントビューアでは、ログオンの種類が4(バッチジョブ)で、ログオンに失敗したセキュリティイベントが表示されるはずです。

1