JP1サポート技術者ブログ

ジョブ管理

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

公開日:
更新日:
ジョブ管理
#AJS3
#初心者向け
#開発
#運用

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</jp1>

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</windows2008>

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サポートセンターは、「JP1認定技術者」の資格を持つサポート技術者の対応が支持され、お客様満足度は10年連続90%以上を維持しています。

紹介サイトでは、サポートセンターが誇る3つの特徴とJP1の最新情報満載の提供サービスを、お客様の声とともにご紹介しています。是非ご覧ください。

また、アシストとJP1保守契約を締結されている方は、Webサポートセンター「AWSC-2」をご利用いただけます。本ブログサイトではご紹介しきれない2,000件以上のFAQを公開していますので、是非ご利用ください。詳細は、下記リンクよりご確認ください。

ページトップへ戻る


この記事をシェアする

この記事を書いたスタッフ

著者の顔写真

本田 祐次

本田 祐次