Categories: OS

PowerShellのStart-Process徹底解説!プロセスの起動と制御をマスターしよう

PowerShellには、新しいプロセスを開始するための便利なコマンド Start-Process があります。Windows上でアプリケーションを自動起動したり、スクリプトの中で他のプログラムを実行したりする際に活用できます。

例えば、テキストエディタやブラウザを開いたり、管理者権限でアプリを実行する場合にも便利です。本記事では、 Start-Process の基本的な使い方から、具体的な活用方法、オプションの詳細まで詳しく解説します。

PowerShellでプロセスを管理したい方は、ぜひ最後まで読んでマスターしてください!


Start-Process コマンドとは?

PowerShellの Start-Process コマンドは、新しいプロセス(アプリケーションやスクリプトなど)を開始するためのコマンドレットです。

基本構文

Start-Process -FilePath "<実行するプログラム>"

このコマンドは、指定したプログラムを新しいプロセスとして起動します。例えば、メモ帳(Notepad)を開く場合は次のように実行します。

Start-Process -FilePath "notepad.exe"

また、Google Chromeを開く場合は以下のようになります。

Start-Process -FilePath "chrome.exe"

Start-Process の主要オプション

Start-Process には、プロセスの実行方法を制御するためのさまざまなオプションがあります。ここでは、主要なオプションを紹介します。

1. -ArgumentList:引数の指定

アプリケーションに引数を渡すことができます。例えば、メモ帳で特定のファイルを開く場合:

Start-Process -FilePath "notepad.exe" -ArgumentList "C:\Users\test\document.txt"

2. -NoNewWindow:新しいウィンドウを開かない

通常、Start-Process は新しいウィンドウを開いてプロセスを起動しますが、-NoNewWindow を使うと現在のウィンドウで実行できます。

Start-Process -FilePath "cmd.exe" -NoNewWindow

この場合、CMD(コマンドプロンプト)がPowerShellのウィンドウ内で動作します。

3. -Wait:プロセスの終了を待つ

通常、Start-Process は非同期でプロセスを起動し、すぐにPowerShellの処理が進みます。-Wait オプションを使うと、プロセスが終了するまでPowerShellの処理が待機します。

Start-Process -FilePath "notepad.exe" -Wait

これは、特定のアプリケーションが終了するまで次の処理を待機する場合に便利です。

4. -PassThru:プロセス情報の取得

-PassThru オプションを使うと、起動したプロセスの情報(プロセスIDなど)を取得できます。

$process = Start-Process -FilePath "notepad.exe" -PassThru
$process.Id

このコマンドを実行すると、メモ帳のプロセスID(PID)が表示されます。

5. -Credential:別のユーザーとして実行

-Credential オプションを使用すると、別のユーザーとしてプログラムを実行できます。

Start-Process -FilePath "cmd.exe" -Credential "Administrator"

※ このオプションを使用する場合は、管理者権限が必要です。

6. -Verb RunAs:管理者権限で実行

管理者権限でアプリを実行する場合は、-Verb RunAs を使用します。

Start-Process -FilePath "powershell.exe" -Verb RunAs

このコマンドを実行すると、UAC(ユーザーアカウント制御)の確認画面が表示され、管理者としてPowerShellが起動します。


Start-Process の具体的な活用例

Start-Process コマンドは、さまざまな場面で活用できます。ここでは、実際の使用例をいくつか紹介します。

1. 特定のファイルを既定のアプリで開く

特定のファイルを、既定のアプリケーションで開くには -FilePath にファイルのパスを指定します。

Start-Process -FilePath "C:\Users\test\document.pdf"

このコマンドを実行すると、PDFファイルが既定のPDFリーダーで開かれます。

2. コマンドプロンプトでスクリプトを実行する

バッチファイルやPowerShellスクリプトを実行する場合:

Start-Process -FilePath "cmd.exe" -ArgumentList "/c echo Hello, World!"

PowerShellスクリプトを管理者権限で実行する場合:

Start-Process -FilePath "powershell.exe" -ArgumentList "-File C:\scripts\test.ps1" -Verb RunAs

3. 特定のウェブサイトを開く

ブラウザで特定のウェブサイトを開くには:

Start-Process -FilePath "chrome.exe" -ArgumentList "https://www.microsoft.com"

Edgeを使う場合:

Start-Process -FilePath "msedge.exe" -ArgumentList "https://www.google.com"

4. 指定時間後にアプリケーションを起動する

タスクスケジューリングのように、一定時間後にアプリケーションを起動する:

Start-Sleep -Seconds 10
Start-Process -FilePath "notepad.exe"

このコマンドを実行すると、10秒後にメモ帳が起動します。


まとめ

Start-Process は、新しいプロセスを開始するための非常に強力なコマンドです。基本的な使い方から、引数の指定、管理者権限での実行、プロセスの制御方法まで、幅広い用途に対応しています。

PowerShellを使って業務を自動化したり、スクリプトの中で外部アプリケーションを呼び出したりする際には、Start-Process を活用しましょう。

ぜひこの記事を参考に、実際に試してみてください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。