JP1サポート技術者ブログ

  • ジョブ管理
2018.01.17

【JP1/AJS3】JP1からだとバッチが実行できない!?

【JP1/AJS3】JP1からだとバッチが実行できない!?

WindowsのGUIから手動で実行できたバッチファイルが、JP1/AJS3からだと実行できなかった経験はありませんか?実は、Windowsにログオンした状態から手動でバッチファイルを実行する場合と、JP1/AJS3から実行する場合では、ジョブのプロセスの生成方法などが異なります。
それにより、ジョブによっては実行環境の違いが原因で実行できないことがあります
今回は、Windows版JP1/AJS3でバッチファイルを実行する上での、設定上の注意点をご紹介します。

1.JP1とOSのジョブ実行環境の違い

JP1/AJS3でジョブを実行する際、手動(OS上)でスクリプトを実行する時と何が異なるのか、
以下の表にまとめました。
項番 項目 JP1から実行した場合
1. 環境変数 JP1/AJS3のジョブの実行環境には、ユーザー環境変数は設定されません。
システム環境変数のみが設定されます。
2. ユーザープロファイル バージョン10以前のJP1/AJS3のデフォルト設定では、ユーザープロファイル
(レジストリのHKEY_CURRENT_USER以下の情報)を読み込みません。
プリンタへの印刷やEXCELのマクロの実行などで、上記レジストリ情報を
読み込めないと、実行できない事例があります。
3. 実行OSユーザー JP1/AJS3では実行登録したJP1ユーザーとマッピングしているOSユーザーで
ジョブが実行されます。
4. 基本優先度
(プライオリティ)
JP1/AJS3のデフォルトの設定では基本優先度は「低」で実行されます。
5. ファイルディスクリプタ 標準出力や標準エラー出力、標準入力が手動で実行した場合と異なります。
ジョブ定義の標準入力ファイルが指定されていない場合、ジョブ実行時に
標準入力として、NULデバイスを割り当てています。
timeoutコマンドなど標準入力に対応していないコマンドは正常に終了しません。
6. 実行空間 JP1/AJS3のジョブはサービス空間で実行されます。
ログオン時に設定される情報(環境変数やネットワーク共有)を使用することが
できません。また画面表示が必要なジョブや対話型処理が必要なジョブも
実行することはできません。
7. ネットワーク共有 Windows2003では「ネットワークドライブの割り当て」によって
割り当てられたドライブ名は、ジョブ実行環境では有効になっていません。
8. カレントディレクトリ [ワークパス]を指定しない場合、デフォルトでは以下のフォルダが
カレントディレクトリとなります。
[Windows2003の場合]
 <JP1フォルダ>\JP1AJS2\tmp
[Windows2008以降の場合]
 C:\ProgramData\Hitachi\jp1\jp1_default\JP1AJS2\tmp
9. ジョブの実行ファイル名 JP1/AJS3からジョブを実行した場合、実行ファイル名がロングファイル名だと
ショートネーム形式に 変換してからジョブが実行されます。
実行しているジョブによってはこの動作により正しく動作しなくなる可能性があります。
10. WOW64環境の問題 WOW64環境で%systemroot%\system32下の64ビットアプリケーションを
起動できません。
11. UACの問題 WindowsのUAC機能を有効にしていると、ビルトインAdministratorを除く、
すべてのAdministratorsグループのOSユーザーは、Administrators権限が
無効な状態で動作してしまいます。
12. デスクトップ
プロセスの問題
JP1/AJS3サービスのセッションとジョブを実行したユーザーで保持する
デスクトッププロセスのセッションが異なっており、このためにデスクトップが
認識できません。Excelのマクロ実行時の動作で認識できない事例があります。

2.対処方法

項目ごとの対処方法をご紹介します。
1. 環境変数
  ユーザー環境変数に指定している変数を、ジョブ内の環境変数に定義してください。

2. ユーザープロファイル
  以下の手順を実施して、ユーザープロファイルの設定を有効にしてください。

(1)JP1/AJS3サービスを停止

(2)ユーザープロファイルの設定をするコマンドを実行
> jajs_config -k [JP1_DEFAULT\JP1NBQAGENT\Job] "LoadUserProfile"=dword:1
> jajs_config -k [JP1_DEFAULT\JP1NBQAGENT\Job] "IsAccessTokenCache"=dword:2
※論理ホストを利用している時は[JP1_DEFAULT]に[論理ホスト名]を入れてください。

(3)JP1/AJS3サービスを起動

【参考マニュアル】
 JP1 Version 11 JP1/Automatic Job Management System 3 構築ガイド
  6.2.16 ユーザープロファイルを必要とするジョブを実行するための設定
  https://itpfdoc.hitachi.co.jp/manuals/3021/30213B1510/AJSX0076.HTM

3. 実行OSユーザー
  手動で実行したOSユーザーと同一のユーザーでジョブを実行するようにしてください。

4. 基本優先度(プライオリティ)
  PCジョブの定義の「実行優先順位」の設定により優先度を変更することが可能です。
  デフォルトは「なし」ですが、「3」にすることで手動環境と同様のプライオリティになります。

5. ファイルディスクリプタ
  ジョブの「標準入力ファイル名」「標準出力ファイル名」「標準エラー出力ファイル名」に
  「CON」と指定
してください。

6. 実行空間
  JP1/Scriptと連携することで対応可能です。
  また、この問題かどうかはOSのタスクスケジューラーから「デスクトップとの対話をサービスに許可」
  外した状態で実行することによって、JP1のサービス空間で実行できるか、切り分け可能です。

7.ネットワーク共有
 ジョブの中でネットワーク共有を行うか、UNC指定を行うことで対応可能です。
 なお、UNC指定を行なう場合、ジョブ実行OSユーザーでアクセスできる ことが前提です。
 以下、例のように指定してください。
 例) \\10.10.10.1\JP1\ファイル名

8. カレントディレクトリ
  ジョブ定義の[ワークパス]に、利用したいフォルダ名を記載してください。

9. ジョブの実行ファイル名
  以下の手順を実施して、ロングファイルを実行する設定を有効にしてください。

(1)JP1/AJS3サービスを停止

(2)ロングファイル名での実行を有効化する
> jajs_config -k [JP1_DEFAULT\JP1NBQAGENT\Job] "IsExecFindExecutable"=dword:1
※論理ホストを利用している時は[JP1_DEFAULT]に[論理ホスト名]を入れてください。

(3)JP1/AJS3サービスを起動

【参考マニュアル】
 JP1 Version 11 JP1/Automatic Job Management System 3 構築ガイド
  6.2.15 ジョブをロングファイル名で実行するための設定
 http://itpfdoc.hitachi.co.jp/manuals/3021/30213B1510/AJSX0075.HTM

10. WOW64環境の問題
  以下の手順を実施して、WOW64環境を実行する設定を有効にしてください。 

  <Windows2008以降の場合>
  %systemroot%\system32配下の代わりに%systemroot%\sysnative配下に
  アクセスするようにしてください。
  例) %systemroot%\sysnative\cscript

  【参考マニュアル】
  JP1 Version 11 JP1/Automatic Job Management System 3 設計ガイド(システム構築編)
   9.5.1 WOW64環境でx86対応のJP1/AJS3を使用する場合の注意事項
  https://itpfdoc.hitachi.co.jp/manuals/3021/30213B1310/AJSH0171.HTM

11. UACの問題
  以下の手順を実施して、UAC環境でも実行できるようにする設定を有効にしてください。

(1)JP1/AJS3サービスを停止

(2)UAC機能有効時でもadministrators権限でジョブを実行できる設定をする
  1.任意のファイルを作成し、以下を記載する
  例) C:\JP1\jajs_add.conf
  ---------------------------------------------
  [JP1_DEFAULT\JP1NBQAGENT\Job]
  "UACAdministratorsExec"=dword:00000001
  ---------------------------------------------
  ※論理ホストを利用している時は[JP1_DEFAULT]に[論理ホスト名]を入れてください。
 
2.以下コマンドを実行して設定を有効化する
   > jbssetcnf C:\JP1\jajs_add.conf

(3)JP1/AJS3サービスを起動

12. デスクトッププロセスの問題
  以下のフォルダを作成したことにより、正しく動作した事例がございます。

  <64 bit 版 OFFICE 製品の場合>
   C:\Windows\System32\config\systemprofile\Desktop
 
  <32 bit 版 OFFICE 製品の場合>
   C:\Windows\SysWOW64\config\systemprofile\Desktop

  ※Microsoft Office は、対話型デスクトップおよびユーザープロファイルを
   想定して設計されているため、上記の対処でも、JP1/AJS3のような
   非対話型の製品での実行では動作しない場合があります。

3.まとめ

ご紹介したように、WindowsのGUIから手動で実行する場合と、JP1/AJS3から実行する場合で
動作が違うことがあります。
JP1/AJS3からだとジョブを実行できないという場合には、上記の観点でも確認をしてみてください。

製品正式名称/略称表記 および機能対応バージョン

JP1/Automatic Job Management System 3 - Manager/JP1/AJS3-Manager Version9.0以降
JP1/Automatic Job Management System 3 - Agent/JP1/AJS3-Agent Version9.0以降
JP1/Base/JP1/Base Version9.0以降


JP1ブログをご覧いただいているみなさまへご案内

いつもJP1サポート技術者ブログをご覧いただきありがとうございます。

アシストとJP1保守契約を締結されている方は、Webサポートセンター「AWSC」をご利用いただけます。本ブログサイトではご紹介しきれない3,000件以上のFAQを公開していますので、是非ご利用ください。
また、アシストではJP1ユーザ企業様向けの無償セミナーや支援サービスを多数ご提供しています。JP1の潜在リスクを洗い出す診断サービスや、バージョンアップ時のノウハウをご紹介するセミナーなどご用意していますので、貴社の課題解決へとお役立てください。アシストと保守契約を締結されていないお客様にもご参加いただけます。詳細は、下記リンクよりご確認ください。



執筆者情報

2007年アシストに入社し一貫してJP1の顧客サポートを担当。「JP1サポート技術者ブログ」の編集リーダー。「JP1認定シニアコンサルタント」の資格保有者。このブログでは、知って便利な情報を紹介したいと思います。

休みの日は、家族の食事を毎食作り、子どもの世話をしています。

本田 祐次

関連している記事

  • ジョブ管理
2023.12.22

【JP1/AJS3】無償利用可!V13新機能「マネジメントポータル」でJP1/AJS3の稼働状況を可視化

V13で新たに実装された、JP1/AJS3システムのリアルタイムな稼働状況をWEB画面で確認できる「マネジメントポータル」機能について詳しくご紹介します。

  • ジョブ管理
2022.06.29

【JP1/AJS3】ネットワークを介したファイル監視をサポート!設定方法や注意点は?

最新バージョンでサポートされた、ネットワークを介したファイルの監視機能。使用するには事前設定が必要です。本ブログでは設定方法をご紹介します。

  • ジョブ管理
2022.05.30

【JP1/AJS3】JP1 Version 8 限定サポート終了間近!移行前チェックポイント6選

限定サポート終了間近のJP1/AJS2からJP1/AJS3へ移行するにあたり、押さえておくべき6つのポイントをご紹介します。

ページの先頭へ戻る