このページの本文へ

Windows Info 第510回

PowerShellの「共通パラメーター」を理解する

2025年12月28日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 PowerShellのすべての組み込みコマンドは、「共通パラメーター」(CommonParameters、https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_commonparameters?view=powershell-7.5)というオプション指定を受け付けるようになっている。

 この「共通パラメーター」は、PowerShellコマンドのエラー対応やメッセージの表示/抑制などを制御するためのもの。また、コマンドは解釈されるものの、何が起こるのかをメッセージで表示するだけで実行はしない「リスク管理パラメーター」も指定できる。

 誤解のないように用語だけ確認しておく。ここでいう「パラメーター」とは、PowerShellコマンドの引数をさす。コマンドラインの引数は、「オプション指定」あるいは「オプション指定+オプション引数」からなる。

 PowerShellのコマンドでは、スペースで区切られて、ハイフンで始まるのがオプション指定である。なお、「オプション」という語は、「選択可能」という意味でも使われることがある。このため、コマンドラインの指定に関しては、「オプション指定」と表記することにした。

共通パラメーターとは?

 以下の表は、共通パラメーターの一覧である。共通パラメーターは、4つに分類できる。1つはエラーや警告、その他の情報がコマンドから発せられた場合の対応を制御するもの。これは表中分類を「共通」としてある。

Windows

 共通に分類されたオプション指定は、エラーなどへの対応を制御するもの。PowerShellには、全コマンドの挙動を設定する「Preference変数」が用意されている。コマンド用のPreference変数は、全コマンドの規定動作を指定する。

 一部のオプション指定は、Preference変数の設定を該当コマンドに対して変更(オーバーライド)するものだ。PowerShellの起動時にPreference変数に入っている値が既定値となる。なお、この既定値を変更したい場合には、プロファイルなどでPreference変数を変更する。

 これらのオプション指定では、Action列挙値(後述)で動作を変更するものと、オプション指定の有無あるいは真偽値を引数として取るものがある。一般にオプションパラメーターの有無は、コマンド内部では真偽値として扱われる。真偽値を引数に取るのは、これを明確に記述したものである。

 たとえば「-Debug」オプション指定の場合、コマンドラインに単に「-Debug」と記述すれば、$DebugPreference変数の値が「Continue」にオーバーライドされ、デバッグメッセージが表示されるようになる。これは、コマンドラインでは「-Debug:$true」と表記しても同じ意味になる。

 逆に「-Debug」を指定しないと、$DebugPreference変数の値が有効になる。この指定は「-Debug:$false」と表記することもできる。注意するのは、$DebugPreference変数が変更されている可能性があることだ。$DebugPreferenceの既定値はSilentlyContinueなので、「-Debug」が指定されていないと既定値が使われ、デバッグメッセージが抑制される。

 しかし、他の値が指定されている場合に何も指定がないと、$DebugPreferenceの設定値に従ってコマンドが動作する。このようなとき、デバッグメッセージを抑制したいなら、「-Debug:$false」を指定する必要がある。

 分類が「共通」になっているもののうち、オプション名が「~Action」となっているものは、引数にAction列挙値を指定する。たとえば、「-ErrorAction」オプション指定ならば「-ErrorAction Stop」などと指定する。

Windows

 もう1つは、コマンドからの出力ストリームを変数に記憶させるもの。PowerShellのコマンドは、7つの出力ストリームを持っている。

Windows

 スクリプトからは、Write-系コマンドを使ってそれぞれのストリームに出力できる。このとき共通パラメーターの変数出力オプションを指定すると、指定した変数名にストリーム出力を記録させることが可能になる。引数である変数名には「$」はつけない。また、この変数名の前に「+」を置くことで、変数に追記される。

 分類で「その他」になっているものは、コマンドラインのパイプライン処理でバッファリングをするためのもの。既定値では、パイプライン処理では、バッファリングはなされない。これは、ネットワークを介してオブジェクトを処理させるような場合に、バッファリングをさせることで、送信頻度を落とし帯域を専有しないようにするためなどに使われる。以上の3つ分類は、すべてのコマンドに適用が可能な「共通パラメーター」である。

 分類が「リスク管理」となっているものは、ファイルを書き換えるなど、システム側を変更してしまうようなコマンドでのみに適用可能なもの。Get-ChildItemによるファイルの一覧など、システム状態を変更しないコマンドには適用できない。

 このリスク管理用のオプション指定は2つある。1つは、コマンドの処理をせず、メッセージとして表示する「-WhatIf」オプション指定だ。これを使うことで、危険なコマンドであっても、実行前に何がされるのかを確認できる。この挙動は、Preference変数である「$WhatIfPreference」が既定値を決める。初期状態では、無効(False/偽/0)となっていて動作は無効になっている。

 「-WhatIf」あるいは「-WhatIf:$true」では、$WhatIfPreferenceの値が有効(True/真/1)にオーバーライドされる。

 もう1つのオプション指定は、「-Confirm」である。こちらは、コマンドの実行前に確認をするもの。これは、$ConfirmPreference変数による既定値をオーバーライドするもの。この変数には、「ComfirmImpact」と呼ばれる列挙値を設定する。これは、システムに対する影響の大きさを元に確認すべき度合いを指定する。

Windows

 また、このオプションを使って、確認を行う場合、PowerShellは、実行の可否などについて聞いてくる。選択肢は5つある。

Windows

 このとき、「S」(Suspend)を選択すると、一時的にセッションが開いて、プロンプトが表示される。ここで各種のコマンドを使うことが可能になる。最後にexitコマンドを実行すると、実行可否の入力状態に戻れる。

 共通パラメーターは、エラー処理、特にコマンドを中止しないエラーへの対応や、各種メッセージ表示の可否などの機能がある。たとえば、多数の出力があるコマンドで途中に挟まるエラーメッセージが邪魔に感じる場合、「-ErrorAction SilentlyContinue」を使うと、赤で表示されるエラーを抑制することが可能だ。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,253
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥937
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥841
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン