JP1/Script(Windows(R)用)

[目次][用語][索引][前へ][次へ]

1.7 スクリプトを作成する前に,実行する前に

<この節の構成>
(1) Messageコマンドについて
(2) 解析トレースファイルおよび実行トレースファイルについて
(3) NetExecコマンドについて
(4) Beepコマンドについて
(5) ファイル名パスの制限について
(6) Scriptランチャサービスについて

(1) Messageコマンドについて

MessageコマンドでTarget引数に「Target_File」を指定して,ユニークなファイル名称を持ったユーザトレースファイルを大量に作成する場合,大量に作成されたファイル名,およびトレースファイルの書き出し位置などを管理するための情報が増えるため,トレース管理ファイルの容量が増えます。トレース管理ファイルの容量が増えると,以下の現象が発生します。

ユニークなファイル名称を持ったユーザトレースファイルを大量に作成する場合は,TextOpen/TextWrite/TextCloseコマンドを使用して,トレースファイルを作成してください。TextOpen/TextWrite/TextCloseコマンドで作成するファイルは,トレース管理ファイルの管理対象外のファイルになるため,トレース管理ファイルの容量が増えることはありません。

(2) 解析トレースファイルおよび実行トレースファイルについて

解析トレースファイル,および実行トレースファイルは標準でスクリプト実行時に発生するエラー情報を出力します。実行環境の設定によりトレースファイルを出力しない設定も可能ですが,スクリプト実行時に発生するステートメントやコマンドのエラーが出力されないため,原因が特定できない場合があります。このため,トレースファイルはできるだけ出力するようにしてください。ただし,実行トレースファイルを詳細に出力する指定をすると,出力する情報量が多くなるため,スクリプトファイルの実行性能が劣化します。

トレースファイルを出力したくない場合は,各コマンドの実行結果を判定して,エラーの場合は,エラーとなったコマンド名,および_RTN_予約変数の内容をファイル等に出力して原因を特定する方法など,エラー処理設計を考慮したスクリプトを作成してください。

注※ 実行トレースファイルの出力レベルについては,「4.1.12 コマンドラインの設定ダイアログ」,または「6.2.2(3) /SPXLV(n)(または/spxlv(n))」を参照してください。

(3) NetExecコマンドについて

NetExecコマンドを実行するスクリプトを複数実行した場合,NetExecコマンド単位で相手先コンピュータとの処理が行われるため,NetExecコマンドを実行するスクリプトを複数実行すると,スクリプトの実行性能が劣化します。NetExecコマンドを実行するスクリプトは大量に実行しないでください。

(4) Beepコマンドについて

Beepコマンドは,実行するOS,ハードウェア環境によってビープ音が鳴らない場合がありますので注意が必要です。詳細は,「8.14.3 Beep (スピーカからビープ音を鳴らす)」の注意事項を参照してください。

(5) ファイル名パスの制限について

JP1/Scriptで指定する実行ファイルや,テキストファイルなどのファイル名の絶対パスは,258バイト以内で指定してください。相対パス指定の場合は,装置内の最上位階層から目的のファイルまでのパスで258バイト以内となります。

(6) Scriptランチャサービスについて

Scriptランチャサービスは,リモートセッションでもNetExecコマンドのログオン空間での要求を制御できる機能です。ターミナルサービス環境などでは,ターミナルサーバはリモートセッションからログオンして操作します。しかし,Scriptランチャはターミナルサーバ側のプライマリセッションで起動するため,リモートセッションではScriptランチャを起動できず,NetExecコマンドのログオン空間での要求を制御できません。Scriptランチャサービスを使用すると,このようなシステム構成でもNetExecコマンドのログオン空間での要求を制御できます。

Scriptランチャサービスは,NetExecコマンドでログオン空間を指定して起動するプログラムを,Scriptランチャサービスの開始パラメータで指定したユーザのログオンセッション下に起動します。そのため,Scriptランチャサービスを使用する場合,NetExecコマンドを使用するときはログオン状態を継続しておく必要があります。ユーザのログオンは,コンソールおよびターミナルサービスのどちらからでも可能です。通常はログオン状態ではなくても,NetExecコマンドを使用する場合にログオンしていれば問題ありません。ターミナルサービスでログオンした場合は,セッションを切断すると,ログオン状態を維持できます。

Scriptランチャサービスは,次の内容でWindowsサービスに登録されます。

 

Scriptランチャサービスを使用するとScriptランチャは起動できなくなります。Scriptランチャサービスを使用する運用の場合,ログオン空間での自動起動ができなくなります。ログオン空間での自動起動が必要な場合は,Scriptランチャサービスを使用しないで,Scriptランチャを使用してください。

Scriptランチャサービスを使用する場合の手順を次に示します。

  1. スタートアップに登録されているScriptランチャを削除する。
  2. Windowsサービスマネージャで,Scriptランチャサービスのプロパティを次のように変更し,プロパティダイアログを開いた状態でScriptランチャサービスを開始する。
    ・ 全般
    • スタートアップの種類:自動
    • 開始パラメータ:ログオンユーザ名
      ログオンユーザ名には,NetExecコマンドで要求されたコマンドを実行するログオン空間のアカウント名を指定します。
      ログオンユーザ名は,"ユーザ名","ユーザ名@ドメイン名","ドメイン名\ユーザ名"のどれかの形式で指定します。
    必ずScriptランチャサービスを開始してから,プロパティの設定ダイアログを閉じてください。Scriptランチャサービスを開始する前にダイアログを閉じると,開始パラメータに設定した情報が消失します。情報が消失した場合は,再度「全般」タブの項目を設定し,Scriptランチャサービスを開始してしてください。
  3. 開始パラメータに指定したログオンユーザ名でログオンする。
    NetExecコマンドを使用して運用している間は,ログアウトしないでください。ターミナルサービスでログオンした場合は,ログオン状態を維持したままセッションを切断すれば,ターミナルサービスクライアントを終了してもかまいません。

NetExecコマンドで要求されたコマンドを実行するログオン空間のアカウント名を変更するには,Scriptランチャサービスを停止し,手順2からやり直します。

ログオン空間のアカウント名に指定するユーザが管理者以外のユーザの場合は,事前にOSのセキュリティの設定で「グローバルオブジェクトの作成」の権利を割り当ててください。