別ユーザーの権限で外部プログラムを実行し、そのプログラムが終了するまでスクリプトの実行を一時停止します。
RunAsWait ( "username", "domain", "password", logon_flag, "program" [, "workingdir" [, show_flag [, opt_flag ]]] )
パラメータ
username | ログオンするユーザー名 |
domain | 認証ドメイン |
password | ユーザーのパスワード |
logon_flag | 0 - プロフィールなしの対話型ログオン 1 - プロフィールありの対話型ログオン 2 - ネットワーク信認のみ 4 - ユーザーの代わりに呼び出しプロセスの環境を継承 |
program | 実行するプログラム(EXE、BAT、COM、またはPIF)のフルパス(注意を参照) |
workingdir | [オプション] 作業ディレクトリ。指定しない場合、@SystemDirが使用されます。これはプログラムのパスではありません。 |
show_flag | [オプション] 実行プログラムの"表示"フラグ: @SW_HIDE = 非表示ウィンドウ (デフォルト) @SW_MINIMIZE = 最小化ウィンドウ @SW_MAXIMIZE = 最大化ウィンドウ |
opt_flag | [オプション] 親プロセスと子プロセスの連携方法に関連したさまざまなオプションを制御します。 0x10000 ($RUN_CREATE_NEW_CONSOLE) = 子コンソールプロセスは親のウィンドウを使用する代わりに独自のウィンドウを作成します。 このフラグは親をコンソールアプリケーションとしてコンパイルした場合のみ使用できます。 |
返し値
成功 | 実行したプログラムの終了コードを返します。 |
失敗 | 0を返し、@errorを非ゼロに設定します。 |
注意
スペースを含むパスはコーテーションマークで囲む必要があります。
関連
ProcessWait, ProcessWaitClose, Run, RunWait, ShellExecute, ShellExecuteWait, RunAs
例
; 実行するシステムのユーザー名とパスワードを正しく設定すること
Local $sUserName = "Username"
Local $sPassword = "Password"
; 別ユーザーとしてコマンドプロンプトを実行
Local $pid = RunAsWait($sUserName, @ComputerName, $sPassword, 0, @ComSpec, @SystemDir)
; プロセスが終了するまで待機
ProcessWaitClose($pid)
; メッセージを表示
MsgBox(0, "", "The process we were waiting for has closed.")