web-dev-qa-db-ja.com

スケジュールされたタスクは失敗しますが、手動でトリガーすると正常に実行されます

Javaアプリへの呼び出しを実行する.batファイルを実行するスケジュールされたタスクを持つ2008R2サーバーがあります。タスクは正常にトリガーされますが、ログファイルの作成後には何も実行を停止します設定方法の詳細は次のとおりです。

  • タスク専用に作成されたユーザーレベルのアカウントで実行され、バッチジョブとしてログオンするためのアクセス許可が設定されています。

  • これらは、バッチファイルが実行できる2つのステップです(2番目のステップはハングします)。

_cd E:\CLIENT_DB\WS_Client\bin\

Java -Xms256m -Xmx512m -XX:MaxPermSize=512m -cp ..;..\*;..\certs;..\config;..\client;..\client\*;..\lib\*;..\lib\axis2\* WsClientStarter update > E:\CLIENT_DB\Logs\WSCLIENT_LOG_%DATE:~4,2%-%DATE:~7,2%-%DATE:~10,4%.txt_
  • Javaクライアントの最初のアクションは、log4jユーティリティを使用して、クライアントクラスを引数としてロガーを作成することです。これは、に示されているファイル名の空のログファイルを取得するため、成功したように見えます。上記のバッチ呼び出し。これは特定のコマンドです。

private static final Logger logger = Logger.getLogger(WsClientRunner.class);

  • 次に、クライアントはmain関数を開始し、「update」引数を読み取って実行モードを判別してから、プログラムどおりに続行します。

これは私の質問です:ユーザーが開始するのではなく(つまり、バッチファイルをダブルクリックする)バッチジョブとして実行すると、これを妨げるセキュリティポリシーやその他のプロセスはありますか?

Javaクライアントは、ログファイルへの結果の書き込みを含め、単独で実行すると問題なく動作するように見えるため、必ずしもJavaクライアントですが、回答がない場合は、次にStackOverflowのスタッフに確認します。

3
Ant

この問題もありました。スケジュールされたタスクを実行するために入力された資格情報が、スクリプトを手動で実行するために使用された資格情報とは異なることが判明しました。私が見つけた他の記事も、権限の問題を指摘していました。

タスクの実行に使用されたIDにローカル管理者権限が付与されると、スケジュールされたジョブが機能しました。次に、スクリプトを正常に完了できるアクセスが最も少ないグループが見つかるまで、プロファイルをより低いローカルセキュリティグループに配置することをテストしました。

1
Dave S

[構成]ボックスで、オペレーティングシステム用のWindows 7、Windows Server 2008R2が選択されているかどうかを確認してください。

また、オプションですが、タスクプロパティの[アクション]タブで[フォルダ内の開始]と入力する必要があります。

多分これは役立つでしょう。それは私に同様の問題を助けました。

1
Stanley Norman