Hitachi

JP1 Version 12 JP1/Script(Windows(R)用)


1.8.2 コマンドの動作

サービスからスクリプトファイルを実行する場合,サービスに指定されているユーザアカウントの権限で動作します。しかし,マネージャからスクリプトファイルを実行する場合,管理者グループのユーザでログオンしても,OSのユーザアカウント制御(UAC)によりJP1/Scriptアプリケーションは標準ユーザで実行されます。

標準ユーザで実行されると影響を受けるコマンドを次に示します。

〈この項の構成〉

(1) アクセス拒否のエラーとなるコマンド

アクセス拒否のエラーとなるコマンドを表1-3に示します。

これらのコマンドを実行するスクリプトファイルは,管理者権限で実行する必要があります。標準ユーザで実行した場合,コマンドが次のエラーになります。

「0005:アクセスは拒否されました。ファイルの属性又はセキュリティを見直してください。」

スクリプトファイルを管理者権限で実行する方法については,「1.8.6 管理者権限での実行」を参照してください。

表1‒5 アクセス拒否のエラーとなるコマンド

No.

コマンド

アクセス拒否のエラーとなる条件

1

SetEnviroment

第一引数(Type)にSystemEnvを指定

2

Rename

第三引数(Metod)にRebootを指定

3

SetVolLabel

なし

4

RegWrite

第一引数(RegKey)にHKEY_CURRENT_USER以外を指定※1

5

RegDelete

第一引数(RegKey)にHKEY_CURRENT_USER以外を指定※2

6

RegDeleteKey

第一引数(RegKey)にHKEY_CURRENT_USER以外を指定※3

7

ServiceCreate

なし

8

ServiceDelete

なし

9

ServiceStart

なし

10

ServiceStop

なし

11

ServicePause

なし

12

ServiceContinue

なし

13

ServiceChange

なし

14

ServiceControl

なし

15

MakeGroup

第二引数(RootType)にLcl_Programを指定

16

DeleteGroup

第二引数(RootType)にLcl_Programを指定

17

MakeShortcut

第一引数(RootPath)にLcl_Desktop,Lcl_Startmenu,Lcl_ProgramまたはLcl_Startupを指定

18

DeleteShortcut

第一引数(RootPath)にLcl_Desktop,Lcl_Startmenu,Lcl_ProgramまたはLcl_Startupを指定

19

GetProcessCount

なし

20

GetProcessInfo

なし

21

TerminateProcess

なし

22

Copy

第九引数(Option6)または第十引数(Option7)にSecurity を指定

注※1

第一引数(RegKey)にHKEY_LOCAL_MACHINE,第二引数(SubKey)の最初のキーにSoftwareを指定した場合,HKEY_CURRENT_USER\Software\Classes\VirtualStore\Machine\Software下にリダイレクトされるためエラーになりません。RegWriteコマンドによってリダイレクトされたエントリはRegReadコマンドで優先して読み込まれます。

注※2

リダイレクトされたSoftware下の値を削除する場合,リダイレクト先のキーを指定する必要があります。

注※3

リダイレクトされたSoftware下のキーに対して実行した場合,キーは削除されません。

(2) ファイル操作系のコマンド

ファイル操作系のコマンドで,環境変数ProgramFilesおよびWinDirに設定されているフォルダ下のファイルに対して出力・更新した場合,ユーザごとの領域へリダイレクトされるときがあるので注意が必要です。リダイレクト先は環境変数LocalAppDataに設定されているパスのVirtualStore下になります。リダイレクトされる条件は,ファイル操作系のコマンドを実行するスクリプトファイルを標準ユーザで実行することです。リダイレクトされないためにはスクリプトファイルを管理者権限で実行しなければなりません。スクリプトファイルを管理者権限で実行する方法については「1.8.6 管理者権限での実行」を参照してください。

標準ユーザで実行したスクリプトファイルからファイル操作系コマンドで入力・参照した場合,リダイレクト先のファイルが優先して操作対象になります。

(3) Exec,NetExecコマンド

Exec,NetExecコマンドでInstall.exe,Setup.exeなどの管理者権限が必要な実行ファイルを呼び出す場合,Exec,NetExecコマンドを実行するスクリプトファイルを標準ユーザで実行すると,次の現象が発生します。

  1. Exec,NetExecコマンドが次のエラーになる。

    「0740:要求された操作には管理者特権が必要です。」

  2. 権限昇格の[ユーザアカウント制御]ダイアログが表示される。

通常は最初にExec,NetExecコマンドが1.のエラーになり,その後OSのプログラム互換アシスタント機能が動作して2.のダイアログが表示されます。

エラーおよびダイアログの表示を抑止したい場合は,スクリプトファイルを管理者権限で実行しなければなりません。スクリプトファイルを管理者権限で実行する方法については「1.8.6 管理者権限での実行」を参照してください。

権限昇格の[ユーザアカウント制御]ダイアログで[キャンセル]ボタンをクリックした場合,Exec,NetExecコマンドが次のエラーになります。

「1223:この操作はユーザーによって取り消されました。」

(4) TerminateProcessコマンド

他ユーザで実行中のプロセスは強制終了できません(スクリプトプロセスは強制終了できます)。他ユーザのプロセスを指定してもエラーにならないで正常終了します(存在しないプロセスを指定したときと同じ動作です)。

(5) GetProcessInfoコマンド

自ユーザで実行中のプロセス情報だけ取得できます。他ユーザで実行中のプロセスIDを指定した場合,アクセス拒否のエラーになります。また,サービス空間で実行中のスクリプトからログオン空間で実行中のプロセスIDを指定した場合もアクセス拒否のエラーになります。