PowerShellでGUI(Graphical User Interface)を使った簡易な入力フォームとして、
✅ InputBox を使ったシンプルな入力
✅ Windows Forms を使ったカスタマイズ可能なフォーム
の作成事例です。
内容:
なお、動作確認はWindows PowerShell 5.1です。
方法①:InputBox を使った簡単な入力フォーム

特徴
- シンプルで、1行でGUI入力ができる
- Windows標準の.NETライブラリを使用
サンプルコード
次のとおりです。
# .NETのWindows Formsライブラリをロード
Add-Type -AssemblyName Microsoft.VisualBasic
# 入力ボックスを表示
$inputValue = [Microsoft.VisualBasic.Interaction]::InputBox("名前を入力してください", "入力ボックス", "デフォルト値")
# 入力された値を表示
Write-Host "入力された値: $inputValue"
Read-Host "`nすべての処理が完了しました。ウィンドウを閉じるには Enter キーを押してください。"
方法②:Windows Forms を使ったカスタム入力フォーム

特徴
- 入力欄やボタンを自由に配置可能
- 複数項目の入力にも対応
サンプルコード
# Windows Forms ライブラリをロード(GUI機能を使うため)
Add-Type -AssemblyName System.Windows.Forms
# フォーム(ウィンドウ)を作成
$form = New-Object Windows.Forms.Form
$form.Text = "入力フォーム" # ウィンドウのタイトル
$form.Width = 300 # ウィンドウの幅
$form.Height = 150 # ウィンドウの高さ
# テキストボックス(入力欄)を作成
$textBox = New-Object Windows.Forms.TextBox
$textBox.Width = 200 # 入力欄の幅
$textBox.Location = '50,30' # 入力欄の位置(X=50, Y=30)
$form.Controls.Add($textBox) # フォームに追加
# OKボタンを作成
$okButton = New-Object Windows.Forms.Button
$okButton.Text = "OK" # ボタンに表示する文字
$okButton.Location = '100,70' # ボタンの位置
$okButton.Add_Click({ $form.Close() }) # ボタンがクリックされたらフォームを閉じる
$form.Controls.Add($okButton) # フォームに追加
# フォームを表示(モーダル表示)
$form.ShowDialog() | Out-Null
# 入力された値を取得
$userInput = $textBox.Text
# 入力された値を表示
Write-Host "入力された値: $userInput"
方法の比較
それぞれの特徴をまとめると次のとおりです。
| 比較項目 | InputBox | Windows Forms |
|---|---|---|
| 実装の簡単さ | ◎(1行) | △(複数行) |
| カスタマイズ性 | △(固定) | ◎(自由自在) |
| 複数入力欄 | × | ◎ |
| 初心者向け | ◎ | ○ |
以上、PowerShellで簡易な入力フォームの作成事例でした。