
2008 R2 サーバーには、Java アプリへの呼び出しを実行する .bat ファイルを実行するスケジュールされたタスクがあります。タスクは正常にトリガーされますが、ログ ファイルを作成した後は何も実行されなくなります。設定方法の詳細は次のとおりです。
これは、タスク専用に作成され、バッチ ジョブとしてログオンするための権限が設定されているユーザー レベルのアカウントで実行されます。
これらはバッチ ファイルが実行できる 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);
- 次に、クライアントはメイン関数を開始し、「update」引数を読み取って実行モードを決定し、プログラムどおりに処理を続行します。
これが私の質問です:ユーザーが開始するのではなく、バッチ ジョブとして実行する場合 (つまり、バッチ ファイルをダブルクリックする場合)、これを妨げるセキュリティ ポリシーやその他のプロセスはありますか?
Java クライアントは、ログ ファイルへの結果の書き込みを含め、単独で実行した場合には正常に動作するように見えるため、必ずしも Java クライアントに問題があるとは考えられませんが、皆さんが答えを得られない場合は、次に StackOverflow の担当者に確認します。
答え1
[構成] ボックスで、オペレーティング システムとして Windows 7、Windows Server 2008 R2 が選択されているかどうかを確認してください。
また、オプションではありますが、タスク プロパティの [アクション] タブに [フォルダーで開始] を入力する必要があります。
たぶんこれが役に立つでしょう。同様の問題で役立ちました。
答え2
私たちもこの問題に遭遇しました。スケジュールされたタスクを実行するために入力された資格情報が、スクリプトを手動で実行するために使用された資格情報と異なっていたことが判明しました。私が見つけた他の記事でも、権限の問題が指摘されていました。
タスクの実行に使用した ID にローカル管理者権限が付与されている場合、スケジュールされたジョブは機能しました。次に、スクリプトを正常に完了できる最もアクセスが少ないグループが見つかるまで、プロファイルを下位のローカル セキュリティ グループに配置することをテストしました。