ja-JP/about_Preference_Variables.help.txt

TOPIC
    about_Preference_Variables

簡単な説明
    PowerShell の動作をカスタマイズする設定変数(プリファレンス変数)に
    ついて説明します。

詳細な説明
    PowerShell には、その動作をカスタマイズするための設定変数が用意されて
    います。これらの変数は、ほかのプログラムにおけるオプション設定と同じ
    ように機能します。

    設定変数への変更は、現在のスコープと子スコープにのみ影響します。変更を
    すべてのセッションに反映するには、PowerShell プロファイルに追加して
    ください。

    多くの設定変数には、対応する共通パラメーター(-ErrorAction や
    -Verbose など)があります。共通パラメーターを使うと、その設定変数の
    値を現在のコマンドに限って上書きできます。

  設定変数の一覧
    変数名 既定値
    ------ ------
    $ConfirmPreference High
    $DebugPreference SilentlyContinue
    $ErrorActionPreference Continue
    $ErrorView ConciseView
    $FormatEnumerationLimit 4
    $InformationPreference SilentlyContinue
    $LogCommandHealthEvent False
    $LogCommandLifecycleEvent False
    $LogEngineHealthEvent True
    $LogEngineLifecycleEvent True
    $LogProviderHealthEvent True
    $LogProviderLifecycleEvent True
    $MaximumHistoryCount 4096
    $OFS スペース " "
    $OutputEncoding UTF8Encoding
    $ProgressPreference Continue
    $PSDefaultParameterValues @{}(空のハッシュテーブル)
    $PSEmailServer $null
    $PSModuleAutoLoadingPreference All
    $PSNativeCommandArgumentPassing Windows / Standard
    $PSNativeCommandUseError... False
    $PSSessionApplicationName wsman
    $PSSessionConfigurationName Microsoft.PowerShell の URI
    $PSSessionOption PSSessionOption オブジェクト
    $PSStyle PSStyle オブジェクト
    $Transcript $null
    $VerbosePreference SilentlyContinue
    $WarningPreference Continue
    $WhatIfPreference False

  各設定変数の詳細

  $ConfirmPreference
    指定できる値: None、Low、Medium、High(既定値)

    コマンドレットを実行する前に自動で確認を求めるかどうかを制御します。
    各コマンドレットには ConfirmImpact(リスクの大きさ)が割り当てられて
    います(利用者は変更できません)。コマンドレットのリスクが
    $ConfirmPreference の値以上のときに確認が表示されます。

        # 既定では High
        $ConfirmPreference

        # Medium に下げると、中リスクの操作でも確認が出る
        $ConfirmPreference = "Medium"
        Remove-Item -Path C:\file.txt

        # 単一コマンドで確認を抑制する
        Remove-Item -Path C:\file.txt -Confirm:$false

  $DebugPreference
    指定できる値: SilentlyContinue(既定値)、Stop、Continue、Inquire、
    Ignore、Break

    Write-Debug などが生成するデバッグメッセージへの応答方法を決めます。
    デバッグメッセージは通常、プログラマーや技術担当者向けの技術的な
    メッセージです。

        # 既定では何も表示されない
        Write-Debug -Message "Hello, World"

        # -Debug を付けると表示される
        Write-Debug -Message "Hello, World" -Debug

        # 既定値を変更して常に表示する
        $DebugPreference = "Continue"

  $ErrorActionPreference
    指定できる値: Continue(既定値)、SilentlyContinue、Stop、Inquire、
    Ignore、Break

    コマンドレットの処理を停止しない非終了エラーへの応答方法を決めます。

        Continue エラーを表示して続行します(既定)。
        SilentlyContinue メッセージを抑制して続行します。
        Ignore メッセージを抑制し、$Error にも追加しません。
        Stop エラーを表示して停止します。
        Inquire エラーを表示して確認を求めます。
        Break デバッガーに入ります。

    PowerShell 7.2 以降、リダイレクト演算子(2>&1 など)でリダイレクト
    されたネイティブコマンドのエラーレコードは $Error 変数に書き込まれず、
    $ErrorActionPreference の影響も受けません。

        $ErrorActionPreference = 'SilentlyContinue'
        Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
        # Hello World だけが表示される(エラーは抑制)

  $ErrorView
    指定できる値: ConciseView(既定値)、NormalView、CategoryView

    エラーメッセージの表示形式を決めます。

        ConciseView コマンドラインからは 1 行、スクリプトからは
                      位置を示す複数行で表示します。端末が対応していれば
                      ANSI 色を使います。
        NormalView 説明と対象オブジェクト名を含む詳細な表示です。
        CategoryView {Category}: ({TargetName}:{TargetType}):
                      [{Activity}], {Reason} の形式です。

  $FormatEnumerationLimit
    指定できる値: 整数(Int32)。既定値は 4。

    列挙された項目を表示で省略記号(...)に切り替えるまでの件数を決めます。

        $FormatEnumerationLimit = 1000
        Get-Service | Group-Object -Property Status

  $InformationPreference
    指定できる値: SilentlyContinue(既定値)、Continue、Inquire、Stop、
    Ignore、Break

    Write-Information コマンドレットによる情報ストリームのメッセージの
    表示を制御します(PowerShell 5.0 で導入)。

  $Log*Event 変数
    PowerShell のイベントログ記録を制御します。

        $LogCommandHealthEvent コマンドの初期化・処理エラー。既定 False
        $LogCommandLifecycleEvent コマンドの開始・停止。既定 False
        $LogEngineHealthEvent セッションのエラー。既定 True
        $LogEngineLifecycleEvent セッションの開閉。既定 True
        $LogProviderHealthEvent プロバイダーのエラー。既定 True
        $LogProviderLifecycleEvent プロバイダーの追加・削除。既定 True

        # コマンドのライフサイクルログを有効にする
        $LogCommandLifecycleEvent = $true

  $MaximumHistoryCount
    指定できる値: 1 ~ 32768(Int32)。既定値は 4096。

    コマンド履歴に保持するコマンドの数を決めます。

        (Get-History).Count

  $OFS
    指定できる値: 任意の文字列

    出力フィールド区切り文字(Output Field Separator)です。配列を文字列に
    変換するときに要素の間に挿入される文字を指定します。既定では $OFS は
    存在せず、区切り文字はスペースになります。

        $array = 1,2,3,4
        [string]$array # 1 2 3 4

        $OFS = "+"
        [string]$array # 1+2+3+4

        Remove-Variable OFS # 既定のスペースに戻す

  $OutputEncoding
    指定できる値: Encoding クラスから派生したオブジェクト(ASCIIEncoding、
    UTF8Encoding、UTF32Encoding、UnicodeEncoding など)

    ネイティブアプリケーションへデータをパイプするときの文字エンコーディングを
    決めます。多くの場面では、$OutputEncoding の値は
    [Console]::InputEncoding と一致させるべきです。

        $OutputEncoding.EncodingName # utf-8
        $OutputEncoding = [System.Text.Encoding]::Unicode

  $ProgressPreference
    指定できる値: Continue(既定値)、SilentlyContinue、Stop、Inquire、
    Ignore、Break

    Write-Progress コマンドレットによる進行状況の更新への応答方法を
    決めます。SilentlyContinue にすると進行状況バーを表示せずに実行します。

  $PSDefaultParameterValues
    指定できる値: ハッシュテーブル(キー:値のペア)

    コマンドレットの既定のパラメーター値を指定します(PowerShell 3.0 で
    導入)。キーは "コマンドレット名:パラメーター名"、値は既定値です。

        $PSDefaultParameterValues = @{"Get-Help:Detailed"=$true}
        $PSDefaultParameterValues.Add("Get-ChildItem:Recurse",$true)

  $PSEmailServer
    指定できる値: 文字列(サーバーアドレス)

    Send-MailMessage などで使う既定のメールサーバーを指定します。

  $PSModuleAutoLoadingPreference
    指定できる値: All(既定の動作)、ModuleQualified、None

    モジュールの自動インポートを制御します。既定では変数は存在せず、All と
    同じ動作になります。

        All 初回使用時にモジュールを自動インポートします。
        ModuleQualified モジュール修飾名を使ったときだけインポートします。
        None 自動インポートを無効にします。

  $PSNativeCommandArgumentPassing
    指定できる値: Legacy、Standard、Windows

    ネイティブコマンドへの引数の渡し方を制御します(PowerShell 7.3 以降)。
    Windows では既定で Windows、それ以外では Standard です。Windows モード
    では cmd.exe、cscript.exe、find.exe、sqlcmd.exe、wscript.exe や
    .bat、.cmd、.js、.vbs、.wsf で終わるファイルに対して Legacy の動作を
    使います。

  $PSNativeCommandUseErrorActionPreference
    指定できる値: $true、$false(既定値)

    $true にすると、終了コードが 0 以外のネイティブコマンドが
    $ErrorActionPreference に従ってエラーを発行します。robocopy のように
    0 以外の終了コードを情報として使うツールに注意が必要です。

        & {
            $PSNativeCommandUseErrorActionPreference = $false
            robocopy.exe D:\reports\op "\\reporting\ops" CY2022Q4.md
            if ($LASTEXITCODE -gt 8) {
                throw "robocopy failed with exit code $LASTEXITCODE"
            }
        }

  $PSSessionApplicationName
    指定できる値: 文字列(アプリケーション名)

    WS-Management のリモートコマンドで使う既定のアプリケーション名です。
    システム既定は WSMAN です。アプリケーション名は接続 URI の最後のノードに
    あたります。

  $PSSessionConfigurationName
    指定できる値: 完全修飾されたリソース URI

    新しいセッションで使う既定のセッション構成を指定します。既定は
    http://schemas.microsoft.com/PowerShell/microsoft.PowerShell です。
    この設定変数はローカルコンピューターで設定しますが、指定するセッション
    構成はリモートコンピューター上にあります。

  $PSSessionOption
    指定できる値: PSSessionOption オブジェクト

    リモートセッションの詳細オプションの既定値を設定し、システム既定を
    上書きします。

        $PSSessionOption = New-PSSessionOption -NoCompression

  $PSStyle
    指定できる値: PSStyle オブジェクト

    ANSI 端末での表示を制御します(PowerShell 7.2 以降)。各メンバーには、
    テキストの表示プロパティに対応する ANSI エスケープシーケンスが
    含まれます。Background と Foreground のメンバーには 24 ビット色を
    指定する FromRgb() メソッドがあります。

        "$($PSStyle.Bold)Shell$($PSStyle.Reset)"

  $Transcript
    指定できる値: ファイルパス・名前

    Start-Transcript がトランスクリプトファイルの保存先を決めるために
    使います。未定義の場合、Start-Transcript は既定の場所を使います
    (Windows は $HOME\Documents、Linux/macOS は $HOME)。既定の
    ファイル名は次の形式です。

        PowerShell_transcript.<コンピューター名>.<ランダム>.<日時>.txt

  $VerbosePreference
    指定できる値: SilentlyContinue(既定値)、Continue、Inquire、Stop、
    Ignore、Break

    Write-Verbose コマンドレットによる詳細メッセージの表示を制御します。
    詳細メッセージはコマンドの実行内容を説明するものです。

        # 既定では表示されない
        Write-Verbose -Message "Verbose message test."

        # -Verbose を付けると表示される
        Write-Verbose -Message "Verbose message test." -Verbose

        $VerbosePreference = "Continue"

  $WarningPreference
    指定できる値: Continue(既定値)、SilentlyContinue、Inquire、Stop、
    Ignore、Break

    Write-Warning コマンドレットによる警告メッセージの表示を制御します。

        $m = "This action can delete data."
        Write-Warning -Message $m

        $WarningPreference = "SilentlyContinue"
        Write-Warning -Message $m # 表示されない

  $WhatIfPreference
    指定できる値: $false(既定値)、$true

    WhatIf がコマンドの効果をシミュレートして実行を抑止するかどうかを
    決めます。$true にすると、対応するすべてのコマンドで自動的に WhatIf が
    有効になり、-WhatIf:$false で個別に上書きできます。

        $WhatIfPreference = $true
        Remove-Item -Path .\test2.txt
        # What if: Performing the operation "Remove File" ...

        Remove-Item -Path .\test2.txt -WhatIf:$false # 実際に削除される

関連項目
    about_Automatic_Variables
    about_CommonParameters
    about_Environment_Variables
    about_Profiles
    about_Remote
    about_Scopes
    about_Variables

----
原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP