PowerShellでメッセージボックスを表示する方法|タイトルの指定方法や押されたボタンの判定処理について解説

目次

スポンサードリンク

PowerShellでは、GUI(グラフィカルユーザーインターフェース)を使ってメッセージボックス(ダイアログ)を表示することが可能です。この記事では、Windows.Forms を使ったメッセージボックスの表示方法を中心に、実行例や選択肢付きダイアログの作り方を解説します。

Windows.Formsでメッセージボックスを表示する方法

PowerShellでメッセージボックスを表示するには、以下のように .NET の Windows.Forms を利用します。

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("処理が完了しました。")

上記コマンドを実行すると、メッセージとOKボタンのみが設置されたシンプルなメッセージボックスが表示されます。

タイトルやボタンを指定する方法

Show関数の第2引数でメッセージウィンドウのタイトルを、第3引数でボタンの種類を指定することができます。下記例では、はい or いいえ の2択を確認するボタンを指定しています。

[System.Windows.Forms.MessageBox]::Show(
    "ファイルを削除しますか?",
    "確認",
    [System.Windows.Forms.MessageBoxButtons]::YesNo
)

実行すると以下のようなメッセージウィンドウが表示されます。タイトル部分が「確認」に変わり、ボタンも「はい」と「いいえ」が表示されています。

ボタンには、他にも以下の定数名を指定できます。表示されるボタンはそれぞれ以下の通りです。

定数名表示されるボタン
OK[OK]
OKCancel[OK] [キャンセル]
YesNo[はい] [いいえ]
YesNoCancel[はい] [いいえ] [キャンセル]
RetryCancel[再試行] [キャンセル]
AbortRetryIgnore[中止] [再試行] [無視]

押されたボタンの判定を行う方法

下記コマンドを実行すると、「はい」と「いいえ」、「キャンセル」の3つのボタンが表示されます。後続の処理では、「はい」ボタンが押された時だけ、「ユーザーが保存を選択しました」というメッセージを表示しています。

$result = [System.Windows.Forms.MessageBox]::Show(
    "保存しますか?",
    "保存確認",
    [System.Windows.Forms.MessageBoxButtons]::YesNoCancel
)

if ($result -eq "Yes") {
    Write-Output "ユーザーが保存を選択しました"
}

表示されるメッセージウィンドウは以下のように3つのボタンが確認でき、はいボタンを押したときだけ、特定の処理を実行するなどボタンによる処理の分岐を実現できます。

まとめ

メッセージボックスは、ユーザーへの通知や確認を行う手段として非常に便利です。スクリプトに対話性を持たせたいときに、ぜひ活用してみてください。PowerShellでは WPF を使ってカスタムGUIを作ることも可能ですが、メッセージボックスのような簡易的なダイアログには Windows.Forms の方がシンプルでおすすめです。


PowerShellの基礎を一通り学べるおすすめ書籍
Windows環境で開発やシステム管理を行うエンジニアにとって、PowerShellの知識は非常に重要なスキルセットです。こちらの書籍はサンプルも豊富で手元に置いておきたい一冊です。

コマンドプロンプトのポケットリファレンス:Windows11対応版