質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

10829閲覧

呼出したバッチの処理終了後に後続処理を実行する方法

ni0327

総合スコア1

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2021/03/12 09:09

標準ユーザーでログインしているPCにて、以下のコマンドを実行し、
呼出したバッチの処理終了を待って、後続処理を実行させたいです。

[a.bat]
start /wait runas /user:Administrator "cmd /C powershell start-process [b.bat] -verb runas -wait"
~ 後続処理 ~

a.batを実行すると管理者のパスワードが聞かれるので、パスワードを入力。
その後、ユーザーアカウント制御画面が表示されるので「はい」をクリックして、b.batを実行。

b.batの処理が終了するの待って後続処理を実行したいのですが、
終了を待たずに実行されてしまっている状況です。(パスワード入力後に後続処理が実行されている)

対応方法がありましたら、ご教授いただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

runas.exeは終了を待たないので、使うのを止めて、powershell start-process b.bat -verb runas -waitだけにすればどうでしょうか?

#コメントを受けての追記
下記のようにすると、a.batwaitforの所で待ち状態になり、b.batwaitfor実行後に再開します。
b.batwaitforを実行する前にエラーでこけたりすると駄目ですね。

[a.bat]

CMD

1start /wait runas /user:Administrator "cmd /C powershell start-process [b.bat] -verb runas -wait" 2waitfor fugafuga 3~ 後続処理 ~

[b.bat]

CMD

1~ 元々の処理 ~ 2waitfor /si fugafuga

投稿2021/03/12 13:19

編集2021/03/15 13:10
otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ni0327

2021/03/15 00:56

ご回答ありがとうございます。 説明が不足しており、申し訳ありません。 [a.bat] start /wait runas /user:Administrator "cmd /C powershell start-process [b.bat] -verb runas -wait" ※上記コマンド実行直前に、管理者パスワードを自動入力させるプログラムを実行しています。 管理者に昇格してパスワードを自動入力。 その後、管理者として[b.bat]を実行し、ユーザーアカウント制御画面(「はい」「いいえ」の選択画面)が表示されるまでを自動で行いたいです。 「powershell start-process b.bat -verb runas -wait」だけにすると 管理者パスワード入力のユーザーアカウント制御画面が表示されてしまうため、 期待する結果にはならない状況です。(管理者パスワードは自動入力させたいため) runas.exeは終了を待たないとのことですが、上記を実現するために 他に対応方法ありましたら、ご教授いただけますでしょうか。 よろしくお願いいたします。
otn

2021/03/15 13:05

ちゃんと使ったことは無いのですが、waitfor コマンドで待ち合わせるか。 追記してみます。
ni0327

2021/03/16 07:31

ご回答ありがとうございます。 頂いた内容で期待する結果が得られました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問