8.10.2 NetExec (自PC/他PC上の実行ファイルを呼び出す)
- 機能
-
複数パラメタ指定で実行ファイル(EXEファイル,BATファイル,COMファイル,SPTファイル,CMDファイル,関連付けられたファイル)を呼び出します。ほかのコンピュータ上の実行ファイルも呼び出せます。終了待ちの有無を指定できます。
- 形式
NetExec ( 〔CompName〕 , FileName , Flag , 〔ExecDirName〕 , 〔ExecPlace〕 , 〔Option〕 〔, Param1 , Param2 , …〕 )
- 指定項目
-
- CompName
-
呼び出すコンピュータ名を文字列,または値を格納した変数名で指定します。※
この値は省略できます。省略した場合,このコマンドを実行するコンピュータのコンピュータ名を仮定します。
なお,指定するほかのコンピュータは,JP1/Scriptがインストールされていなければなりません。また,アクセスするためのアカウントについては「2.2 他のコンピュータとの通信時のアカウント」を参照してください。
注※ 呼び出すコンピュータがクラスタシステム環境の場合は,次の値を指定してください。
-
JP1/Scriptサービスや,ScriptランチャまたはScriptランチャサービスをリソースとして登録しているとき:論理ホスト名,または論理IPアドレスを指定してください。
-
JP1/Scriptサービスや,ScriptランチャまたはScriptランチャサービスをリソースとして登録していないとき:物理ホスト名,または物理IPアドレスを指定してください。
-
- FileName
-
呼び出す実行ファイル名を文字列,または値を格納した変数名で指定します。
実行ファイルに指定できるファイルの種類は次のとおりです。
-
実行形式ファイル(.EXE)
-
MS-DOSバッチファイル(.BAT)
-
MS-DOS実行形式ファイル(.COM)
-
JP1/Scriptスクリプトファイル(.SPT)
-
コマンドスクリプト(.CMD)
-
関連付けられたファイル
空白を含むパス,またはファイル名を指定する場合に,パス,またはファイル名をダブルクォーテーション(")で囲む必要はありません。
ファイル名だけを指定する場合は,CompNameで指定されたコンピュータの環境変数PATHに呼び出す実行ファイルが格納されているフォルダを設定してください。
-
- Flag
-
FileNameで指定された実行ファイルの終了待ちをするときは真(True)を,終了待ちをしないときは偽(False)を指定します。
ただし,Flagに偽(False)が指定され,スクリプト終了時に実行ファイルがまだ終了していない場合は,その時点で実行ファイルが終了するまで待機します。このような終了待ちをしないでスクリプトを終了するには,Exitコマンド(オプションにSkip指定)を使用します。「8.10.1 Exec(自PC上の実行ファイルを呼び出す)」の例2を参照してください。
- ExecDirName
-
FileNameで指定された実行ファイルのカレントディレクトリ名を文字列,または値を格納した変数名で指定します。
この値は省略できます。省略した場合,実行ファイルのディレクトリ名を仮定します。
なお,この値はFileNameで指定された実行ファイルがJP1/Scriptファイル以外の場合に有効となります。
- ExecPlace
-
FileNameで指定された実行ファイルをサービス空間で実行するときには真(True)を,ログオン空間で実行するときには偽(False)を指定します。
この値は省略できます。省略した場合,真(True)を仮定します。
なお,CompNameで指定されたコンピュータでは,この値に真(True)が指定された場合にはJP1/Scriptサービスが,偽(False)が指定された場合にはScriptランチャまたはScriptランチャサービスが開始されていなければなりません。
- Option
-
FileNameで指定された実行ファイルがJP1/Scriptスクリプトファイル(.SPT)の場合,オプションを指定します。
この値には次の値を指定できます。
値
意味
CopyFile
呼び出し元に存在するスクリプトファイルをCompNameで指定されたコンピュータにコピーして実行します。
この場合,呼び出し先のスクリプトの実行環境フォルダ(システムドライブ\ProgramData\Hitachi\Script\Data)下に呼び出し元コンピュータ名のフォルダを作成し,その下にスクリプトファイルをコピーします。コピーするスクリプトファイルの実行環境ファイル(.SPV)はコピーしません。なお,コピーするスクリプトファイルと同名の実行環境ファイルがスクリプトファイルのコピー先に存在する場合は,コピー時に削除します。
JP1/Script 06-00以降では,コピーするスクリプトファイルと同名のメニュー情報ファイル(.SPN)が存在する場合,メニュー情報ファイルも上記のフォルダ下にコピーします。同名のファイルがコピー先に存在する場合はコピー時に削除します。
このコマンドの実行終了後,コピーしたスクリプトファイル,およびメニュー情報ファイルは削除し,コピーしたスクリプトの実行後に出力される解析トレースファイル,および実行トレースファイルは呼び出し元のスクリプト実行フォルダにコピーして戻します。
オプションにCopyFileを指定した場合は,次の注意事項があります。
-
実行環境ファイルに設定していた情報がすべて無効になります。そのため,起動したスクリプトファイルでは,実行環境ファイルに設定したコマンドラインは無効となります。
-
CopyFileを指定して起動するスクリプトファイルの複数起動はできません。
-
Flagで指定した値にかかわらずコピーしたスクリプトの実行が終了するまでWindowsのログオフやシャットダウンはしないでください。
この値は省略できます。省略した場合,CompNameで指定されたコンピュータに存在するスクリプトファイルを実行します。
また,FileNameで指定された実行ファイルがJP1/Scriptスクリプトファイル(.SPT)以外の場合は無効になります。
-
- Param1〜31
-
FileNameで指定されたファイルの実行に必要なパラメタがある場合,パラメタを文字列,数値,または値を格納した変数名で指定します。
複数のパラメタを指定できます。
JP1/Script 06-00以降では,複数のパラメタを一つずつ格納した一次元の配列変数を変数名で指定することもできます。
パラメタの記述規則に関しては,「6.2 コマンドラインに関する規則」を参照してください。
なお,パラメタに次の文字列を指定した場合,起動するアプリケーション側でのウィンドウ表示時のデフォルトとして扱われます。明示的にウィンドウを表示するアプリケーションには有効になりません。
パラメタ
意味
"/SPT:HIDE"
アプリケーションのウィンドウを非表示にします。
"/SPT:MIN"
アプリケーションのウィンドウを最小化します。
"/SPT:MAX"
アプリケーションのウィンドウを最大表示します。
パラメタはコマンドラインパラメタとして実行ファイルに渡されますが,"/SPT:HIDE","/SPT:MIN",および"/SPT:MAX"パラメタはコマンドラインパラメタとしては渡されません。
- 説明
-
指定されたコンピュータ上の実行ファイルを実行します。
Flagに真(True)が指定された場合は,呼び出したアプリケーションが終了するまで待機し,偽(False)が指定された場合は,アプリケーションが終了するまで待機しないで次のコマンドを処理します。
コマンドが正常に実行された場合は真(True)を,それ以外の場合は偽(False)を,コマンドの実行結果として返します。
アプリケーションの終了待ちをし,コマンドの実行結果が真(True)の場合は,実行ファイルの終了コードを_EXEC_RTN_予約変数に符号付きの数値で格納します。終了待ちをしない場合やコマンドの実行結果が偽(False)の場合は,_EXEC_RTN_予約変数には何も格納されません。
また,アプリケーションの終了待ちをしない場合,実行ファイルの識別子を_EXEC_ID_予約変数に格納します。
- 補足1
-
NetExecコマンドは,呼び出す実行ファイルの種類が異なると,同等のエラーであってもコマンドの実行結果が異なる場合があります。例えば,存在しないEXEファイルを呼び出したときは偽(False)を,存在しないSPTファイルを呼び出したときは真(True)をコマンドの実行結果として返します。
Flagに真(True)が指定され,終了待ちをするNetExecコマンドが正常終了したかどうかを判定するためには,コマンドの実行結果だけでなく,_EXEC_RTN_予約変数に格納された実行ファイルの終了コードの判定も必要です。「8.10.1 Exec(自PC上の実行ファイルを呼び出す)」の例1のような判定方法を推奨します。
また,CompNameにほかのコンピュータを指定する場合,LAN環境下での動作だけを保証しています。WAN環境下などの動作は保障していません。また,ファイアウォールを介しての実行はできません。
JP1/Script 07-00以降では,NetExecコマンド実行時にログフォルダ(システムドライブ\ProgramData\Hitachi\Script\LOG)下"STXNetExec_Client",および"STXNetExec_Server"フォルダを作成し,エラーが発生した場合,このフォルダ下にエラーログファイルを出力します。
エラーログファイルの出力を抑止する場合は,次に示すレジストリの値に0を設定してください。
- 〔レジストリキー〕
-
HKEY_LOCAL_MACHINE\SOFTWARE\Hitachi\JP1/Script\SPTX\
Option
- 〔値名〕
-
Net_Trace
- 〔値のデータタイプ〕
-
REG_DWORD
- 〔値〕
-
0:エラーログファイルを出力しない
1:エラーログファイルを出力する(初期値)
- 〔設定が有効になるタイミング〕
-
スクリプトファイルの次回実行時
また,エラーログファイルの出力先ファルダを変更する場合は,次に示すレジストリの値にフォルダ名を指定してください。
- 〔値名〕
-
Net_Trace_Directory
- 〔値のデータタイプ〕
-
REG_SZ
- 〔値〕
-
エラーログファイルの出力先フォルダ(初期値:スクリプトのログフォルダ)
- 〔設定が有効になるタイミング〕
-
スクリプトファイルの次回実行時
- 補足2
-
管理者権限が必要な実行ファイルを実行する場合,OSのユーザアカウント制御ダイアログが表示されるときがあります。詳細は,「1.8.2 コマンドの動作」を参照してください。
NetExecコマンドでは,呼び出し元のプロセス環境変数を呼び出し先に継承しません。そのため,呼び出し元で設定した値を参照できません。
- 補足3
-
CompNameに存在しないコンピュータ名を指定した場合やFileNameに存在しない実行ファイル名を指定した場合は,真(True)をコマンドの実行結果として返し,_RTN_予約変数には0が格納されます。
また,次の場合も同様となりますので,注意してください。
-
実行ファイルのアクセスに失敗した
-
ネットワークで障害が発生した
-
JP1/Scriptサービスが停止している
-
ScriptランチャまたはScriptランチャサービスが起動されていない
-
- 補足4
-
JP1/AJSでは,GUIを表示して入力待ちになるプログラムを直接ジョブとして実行できません。しかし,次のようにJP1/Scriptのスクリプトファイルを経由することで,JP1/AJSからGUIを持つプログラムを実行できます。
-
GUIを表示するプログラムをNetExecコマンドで呼び出すスクリプトファイルを作成する。このとき,NetExecコマンドのExecPlaceには偽(False)を指定する。
-
1.で作成したスクリプトファイルをJP1/AJSのジョブから実行する。
-
- 例
' コンピュータ"SOP4A065(SCRIPT)"上のスクリプトファイルを ' ログオン空間で起動する。 comp1="SOP4A065(SCRIPT)" prm1="/SPALV(2)" prm2="/SPXLV(2)" rtn1=NetExec ( comp1,_TEMP_+"NETWORK.SPT" ,True , ,False , _ ,prm1 ,prm2 ) ' スクリプトを終了する。 If rtn1 = True Then ' NetExecコマンドが正常終了の場合は呼び出したスクリプト ' ファイルの終了コードを返す。 Exit ( _EXEC_RTN_ ) Else ' NetExecコマンドが異常終了の場合はエラー詳細コードを返す。 Exit ( _RTN_ ) End
- 対象バージョン
-
JP1/Script 05-00以降