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 |