次の方法で共有


about_Preference_Variables

トピック
    ユーザー設定変数

簡易説明
    Windows PowerShell の動作をカスタマイズする変数

詳細説明
    Windows PowerShell には、その動作をカスタマイズするための一連の
    変数が用意されています。これらの "ユーザー設定変数" は、GUI 
    ベースのシステムのオプションと同様に機能します。

    ユーザー設定変数は、Windows PowerShell の動作環境およびその環境
    で実行されるすべてのコマンドに影響します。多くの場合、コマンド
    レットには、特定のコマンドのユーザー設定動作を上書きするための
    パラメーターがあります。

    ユーザー設定変数およびその既定値の一覧を次の表に示します。

    変数                                 既定値
    --------                             -------------
    $ConfirmPreference                   High
    $DebugPreference                     SilentlyContinue
    $ErrorActionPreference               Continue
    $ErrorView                           NormalView
    $FormatEnumerationLimit              4
    $LogCommandHealthEvent               False (ログに記録しない)
    $LogCommandLifecycleEvent            False (ログに記録しない)
    $LogEngineHealthEvent                True (ログに記録する)
    $LogEngineLifecycleEvent             True (ログに記録する)
    $LogProviderLifecycleEvent           True (ログに記録する)
    $LogProviderHealthEvent              True (ログに記録する)
    $MaximumAliasCount                   4096
    $MaximumDriveCount                   4096
    $MaximumErrorCount                   256
    $MaximumFunctionCount                4096
    $MaximumHistoryCount                 64
    $MaximumVariableCount                4096
    $OFS                                 (空白文字 (" "))
    $OutputEncoding              ASCIIEncoding オブジェクト
    $ProgressPreference                  Continue
    $PSEmailServer                       (なし)
    $PSSessionApplicationName            WSMAN
    $PSSessionConfigurationName          https://schemas.microsoft.com/powershell/microsoft.powershell
    $PSSessionOption                     (下記参照)
    $VerbosePreference                   SilentlyContinue
    $WarningPreference                   Continue
    $WhatIfPreference                    0


    また、Windows PowerShell には、ユーザー設定を格納する次の環境変数が含まれ
    ています。環境変数の詳細については、「about_environment_variables」
    を参照してください。

    変数
    --------                         
    PSModulePath

ユーザー設定変数の操作
    このドキュメントでは、各ユーザー設定変数について説明します。

    特定のユーザー設定変数の現在の値を表示するには、変数の名前を入力します。
    応答として、Windows PowerShell によって値が表示されます。たとえば、
    $ConfirmPreference 変数の値を表示するには、次のコマンドを入力します。

        PS> $ConfirmPreference
        High

    変数の値を変更するには、代入ステートメントを使用します。たとえば、
    次のステートメントでは、$ConfirmPreference 変数に "Medium" 
    という値が代入されます。

        PS> $ConfirmPreference = "Medium"

    すべての変数と同様に、設定する値は、現在の Windows PowerShell ウィンドウに固有の
    設定です。これらの値をすべての Windows PowerShell ウィンドウで有効にするには、
    Windows PowerShell プロファイルに値を追加します。詳細については、「about_profiles」
    を参照してください。


リモートでの操作
   リモート コンピューター上でコマンドを実行すると、リモート コマンドには、リモート 
   コンピューター上の Windows PowerShell クライアントに設定されているユーザー設定の
   みが適用されます。たとえば、リモート コマンドを実行すると、リモート コンピューター
   上の $DebugPreference 変数の値によって、Windows PowerShell がデバッグ メッセージに
   どのように応答するかが決まります。

   リモート コマンドの詳細については、「about_remote」を参照してください。



$ConfirmPreference
------------------
    実行前に自動的にユーザーに確認を指示するコマンドレット アクションを決定します。
        
    $ConfirmPreference の値 (High、Medium、Low、None) がコマンドレット アクションの
    リスク (High、Medium、Low、None) 以上である場合、Windows PowerShell はアクションを
    実行する前に自動的にユーザーに確認を指示します。

    コマンドレットの Confirm パラメーターを使用して、特定のコマンドのユーザー設定を
    上書きできます。

        有効な値は次のとおりです。
        None:        すべてのコマンドレット アクションにおいて、自動確認メッセージは表示されません。特定
                     のコマンドの確認を要求するには、Confirm パラメーターを使用する必要があります。

        Low:         コマンドレット アクションのリスクが Low、Medium、または High の場合に、自動確認メ
                     ッセージが表示されます。特定のコマンドの確認メッセージが表示されないようにするには、
                             -Confirm:$false を使用します。

        Medium:      コマンドレット アクションのリスクが Medium または High の場合に、自動確認メッセージ
                     が表示されます。特定のコマンドの確認メッセージを表示するには、-confirm を使用します。
                             特定のコマンドの確認メッセージが表示されないようにするには、confirm:$false を使用します。

        High (既定): コマンドレット アクションのリスクが High の場合に、自動確認メッセージが表示され
                     ます。特定のコマンドの確認メッセージを表示するには、-confirm を使用します。特定の
                             コマンドの確認メッセージが表示されないようにするには、-confirm:$false を使用します。


    詳細説明
        コマンドレット アクションがシステムに大きな影響を与える場合 (データの
        削除や大量のシステム リソースの使用など)、Windows PowerShell によって
        アクションを実行する前に自動的に確認メッセージを表示できます。

        次に例を示します。

        PS> remove-item pref2.txt

            確認
            この操作を実行しますか?
            対象 "C:\pref2.txt" に対して操作 "ファイルの削除" を実行しています。
            [Y] はい  [A] すべて続行  [N] いいえ  [L] すべて無視  [S] 中断  [?] ヘルプ (既定は "Y"):

        リスクの推定は、"ConfirmImpact" というコマンドレットの一部として行われます。このパラメータ
        ーを変更することはできません。

        システムに危険をもたらす可能性があるコマンドレットには、Confirm パラメーターを指定して、
        特定のコマンドの確認を指示させるか、表示されないようにすることができます。

    ほとんどのコマンドレットでは、リスクの既定値として Medium が使用されます。
        $ConfirmPreference の既定値は High であるので、自動確認メッセージが表示されることは
        まれです。ただし、$ConfirmPreference の値を Medium または Low に変更することによって、
        自動確認メッセージをアクティブ化できます。

    例
      この例は、$ConfirmPreference の既定値を使用したときの結果を示しています。
      値が High の場合、リスクが High のコマンドレットに対してのみ確認メッセー
      ジが表示されます。ほとんどのアクションのリスクは Medium であるので、
      自動確認メッセージは表示されません。ただし、コマンドレットの Confirm 
      パラメーターを使用して、特定のコマンドの確認を指示させることもできます。

          PS> $confirmpreference              # 変数の現在の値を取得します。
          High          
          PS> remove-item temp1.txt           # ファイルを削除します。
          PS>                                 # 確認なしで削除されます。
          PS> remove-item temp2.txt -confirm  # Confirm パラメーターを使用します。

          確認
          この操作を実行しますか?
          対象 "C:\temp2.txt" に対して操作 "ファイルの削除" を実行しています。
          [Y] はい  [A] すべて続行  [N] いいえ  [L] すべて無視  [S] 中断  [?] ヘルプ (既定は "Y"):


       この例は、$ConfirmPrefernce の値を Medium に変更したときの結果を示しています。
       ほとんどのコマンドレット アクションのリスクは Medium であるため、自動確認
       メッセージが表示されます。特定のコマンドの確認メッセージを表示されないように
       するには、値を $false に設定して Confirm パラメーターを使用する必要があります。

            
          PS> $confirmpreference = "Medium"
                                     # $ConfirmPreference の値を変更します。
          PS> remove-item temp2.txt
                                     # ファイルを削除すると確認がトリガーされます。
          確認
          この操作を実行しますか?
          対象 "C:\temp2.txt" に対して操作 "ファイルの削除" を実行しています。
          [Y] はい  [A] すべて続行  [N] いいえ  [L] すべて無視  [S] 中断  [?] ヘルプ (既定は "Y"):
    

          PS> remove-item temp3.txt -confirm:$false     # Confirm パラメーターを使用して確認
                                                          メッセージが表示されないようにします。
          PS>

$DebugPreference
------------------
    スクリプト、コマンドレット、プロバイダー、またはコマンドラインの Write-Debug 
        コマンドによって生成されるデバッグ メッセージに対して Windows PowerShell 
        が応答する方法を決定します。

        一部のコマンドレットはデバッグ メッセージを表示しますが、これらは通常、
        プログラマーおよびテクニカル サポートの専門家を対象とした非常に技術的
        なメッセージです。既定では、デバッグ メッセージは表示されませんが、
        $DebugPreference の値を変更することによってデバッグ メッセージを表示できます。
        
        コマンドレットの Debug 共通パラメーターを使用して、特定のコマンドの
        デバッグ メッセージの表示と非表示を切り替えることもできます。詳細について参照する
        には、「get-help about_commonparameters」と入力してください。

        有効な値は次のとおりです。
        Stop:                     デバッグ メッセージを表示し、実行を停止します。
                                      エラーがコンソールに書き込まれます。

            Inquire:                  デバッグ メッセージを表示し、続行するかどうかを確認します。

            Continue:                 デバッグ メッセージを表示し、実行を継続します。

            SilentlyContinue (既定):  影響はありません。デバッグ メッセージは表示されず、
                                      中断することなく実行が継続されます。
             

    例
    
    次の例は、コマンドラインに Write-Debug コマンドが入力されている場合に 
    $DebugPreference の値を変更したときの結果を示しています。この変更は、
    コマンドレットおよびスクリプトによって生成されるメッセージを含む、すべての
    デバッグ メッセージに影響します。これらの例は、単一のコマンドに関連するデバッグ 
    メッセージの表示と非表示を Debug 共通パラメーターを使用して切り替える方法も示しています。

    この例は、既定値の "SilentlyContinue" を使用したときの結果を示しています。デバッグ 
    メッセージは表示されず、処理が継続されます。最後のコマンドでは、Debug パラメーターを
    使用して、単一のコマンドのユーザー設定を上書します。

        PS> $debugpreference                    # の現在の値を取得します。
        SilentlyContinue                          $DebugPreference 
 
        PS> write-debug "Hello, World"
        PS>                                     # デバッグ メッセージは表示されません。

        PS> write-debug "Hello, World" -Debug   # Debug パラメーターを使用します。
        DEBUG: Hello, World                     # デバッグ メッセージが要求されます。
        
        確認
        この操作を続行しますか?
        [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"):

   
    この例は、"Continue" という値を使用したときの結果を示しています。最後のコマンドでは、
    値を $false に設定して Debug パラメーターを使用し、単一のコマンドに関するメッセージが
    表示されないようにします。

        PS> $debugpreference = "Continue"   # 値を "Continue" に変更します。

        PS> write-debug "Hello, World"
        DEBUG: Hello, World                 # デバッグ メッセージが表示され、
        PS>                                   処理が継続されます。
 
        PS> write-debug "Hello, World" -Debug:$false
                                            # false に設定して Debug 
                                              パラメーターを使用します。
        PS>                                 # デバッグ メッセージは表示されません。

        
    この例は、"Stop" という値を使用したときの結果を示しています。
    最後のコマンドでは、値を $false に設定して Debug パラメーターを使用し、
    単一のコマンドに関するメッセージが表示されないようにします。

        PS> $debugpreference = "Stop"       # 値を "Stop" に変更します。
        PS> write-debug "Hello, World"
        DEBUG: Hello, World
        Write-Debug : シェル変数 "DebugPreference" が Stop に設定されたためコマンドが停止しました。
        行: 1 文字: 12
        + write-debug <<<< "Hello, World"

        PS> write-debug "Hello, World" -Debug:$false
                                            # $false に設定して Debug 
                                              パラメーターを使用します。
        PS>                                 # デバッグ メッセージは表示されず、
                                              処理は停止されません。
      

    この例は、"Inquire" という値を使用したときの結果を示しています。
    最後のコマンドでは、値を $false に設定して Debug パラメーターを使用し、
    単一のコマンドに関するメッセージが表示されないようにします。

        PS> $debugpreference = "Inquire"
        PS> write-debug "Hello, World"
        DEBUG: Hello, World

        確認
        この操作を続行しますか?
        [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"):

        PS> write-debug "Hello, World" -Debug:$false
                                            # $false に設定して Debug 
                                              パラメーターを使用します。
        PS>                                 # デバッグ メッセージは表示されず、
                                              中断することなく処理が継続されます。


$ErrorActionPreference
----------------------
    Write-Error コマンドレットによって生成されるエラーなど、コマンドライン、スクリプト、
        コマンドレット、またはプロバイダー内で発生した未終了エラー (コマンドレットの処理を中止
        しないエラー) に対して Windows PowerShell が応答する方法を決定します。

        コマンドレットの ErrorAction 共通パラメーターを使用して、特定のコマンドのユーザー設定
        を上書きすることもできます。詳細について参照するには、「get-help about_commonparameters」
        と入力してください。


        有効な値は次のとおりです。
        Stop:                        エラー メッセージを表示し、実行を停止します。

            Inquire:                     エラー メッセージを表示し、続行するかどうかを確認します。

            Continue:                    エラー メッセージを表示し、実行を継続します。

            SilentlyContinue (既定):     影響はありません。エラー メッセージは表示されず、
                                         中断することなく実行が継続されます。


       $ErrorActionPreference および ErrorAction 共通パラメーターのどちらも、
       Windows PowerShell が終了エラー (コマンドレットの処理を中止するエラー) 
       に応答する方法には影響しません。

       ErrorAction 共通パラメーターの詳細について参照するには、
       「get-help about_commonparameters」と入力してください。


    例

    これらの例は、$ErrorActionPreference に異なる値を使用したときの結果、および 
    ErrorAction 共通パラメーターを使用して単一のコマンドのユーザー設定を上書き
    したときの結果を示しています。ErrorAction パラメーターに有効な値は、
    $ErrorActionPreference 変数に有効な値と同じです。
    
    この例は、既定の Continue という値を使用したときの結果を示しています。

        PS> $erroractionpreference                      
        Continue        # ユーザー設定値を表示します。    
               
        PS> write-error "Hello, World"                  
                                # 未終了エラーを生成します。

        write-error "Hello, World" : Hello, World        
                                # エラー メッセージが表示され、
                                  実行が継続されます。

        PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
                                # 値を \"SilentlyContinue\" に設定して 
                                  ErrorAction パラメーターを使用します。
        PS>                                             
                                # エラー メッセージは表示されず、
                                  実行が継続されます。

    この例は、SilentlyContinue という値を使用したときの結果を示しています。

        PS> $ErrorActionPreference = "SilentlyContinue"
                                # ユーザー設定値を変更します。
        PS> write-error "Hello, World"                  
                                # エラー メッセージを生成します。
        PS>                     
                                # エラー メッセージは表示されません。
        PS> write-error "Hello, World" -erroraction:continue
                                # 値を \"Continue\" に設定して ErrorAction 
                                  パラメーターを使用します。
        write-error "Hello, World" -erroraction:continue : Hello, World 
                                # エラー メッセージが表示され、実行が継続されます。

       
    この例は、実際にエラーが発生したときの結果を示しています。この場合、
    コマンドによって、存在しないファイルである nofile.txt が取得されます。
    また、ErrorAction 共通パラメーターを使用して、ユーザー設定を上書き
    します。

        PS> $erroractionpreference                      
        SilentlyContinue        # ユーザー設定値を表示します。

        PS> get-childitem -path nofile.txt
        PS>                     # エラー メッセージは表示されません。

        PS> $ErrorActionPreference = "Continue"
                                # 値を Continue に変更します。

        PS> get-childitem -path nofile.txt
        Get-ChildItem : パス 'C:\nofile.txt' が存在しないため検出できません。
        行: 1 文字: 4
        + get-childitem <<<< nofile.txt

        PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
                                # ErrorAction パラメーターを使用します。
        PS>                        
                                # エラー メッセージは表示されません。
  
        PS> $ErrorActionPreference = "Inquire"          
                                # 値を Inquire に変更します。
        PS> get-childitem -path nofile.txt

        確認
        パス 'C:\nofile.txt' が存在しないため検出できません。
        [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"): y
        Get-ChildItem : パス 'C:\nofile.txt' が存在しないため検出できません。
        行: 1 文字: 4
        + get-childitem <<<< nofile.txt

        PS> $ErrorActionPreference = "Continue"                  
                                # 値を Continue に変更します。
        PS> Get-Childitem nofile.txt -erroraction "Inquire"
                                # ErrorAction パラメーターを使用してユーザー
                                  設定値を上書きします。

        確認
        パス 'C:\nofile.txt' が存在しないため検出できません。[Y] はい  
        [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"):


$ErrorView
----------
        Windows PowerShell でのエラー メッセージの表示形式を決定します。

        有効な値は次のとおりです。
        NormalView (既定):         ほとんどのユーザーを対象とした詳細ビューです。
                                       エラーの説明、エラーに記載されているオブジェクトの
                                       名前、およびエラーの原因になったコマンド内の単語を指
                                       す矢印 (<<<<) で構成されます。

            CategoryView:              稼働環境を対象とする簡潔で構造化されたビューです。
                                       {Category}: ({TargetName}:{TargetType}):[{Activity}], 
                                       {Reason} という形式が使用されます。

        CategoryView のフィールドの詳細については、MSDN の「Windows PowerShell SDK」で
        「ErrorCategoryInfo Class (ErrorCategoryInfo クラス)」(https://msdn.microsoft.com/
        ja-jp/library/system.management.automation.errorcategoryinfo(en-us,VS.85).aspx) 
        を参照してください。
        
    例

    これらの例は、ErrorView に異なる値を使用したときの結果を示しています。

    この例は、$ErrorView の値が NormalView のときにエラーがどのように表示されるかを示しています。
    この場合、存在しないファイルが Get-ChildItem コマンドによって検索されます。

        PS> $ErrorView                         # 値を確認します。
        NormalView

        PS> get-childitem nofile.txt           # 存在しないファイルが検索されます。
        Get-ChildItem : パス 'C:\nofile.txt' が存在しないため検出できません。
        行: 1 文字: 14
        + get-childitem <<<< nofile.txt

    この例は、$ErrorView の値が CategoryView のときに、同じエラーがどのように表示
    されるかを示しています。

        PS> $ErrorView = "CategoryView"        # 値を
                                                 CategoryView に変更します。

        PS> get-childitem nofile.txt
        オブジェクト未検出: (C:\nofile.txt:String) [Get-ChildItem]、ItemNotFoundException

 
   この例は、ErrorView の値がエラー表示にのみ影響することを示しています。$error automatic 
   変数に格納されているエラー オブジェクトの構造は変更されません。$error 自動変数の詳細に
   ついては、「about_automatic_variables」を参照してください。

   このコマンドは、エラー配列内の最新のエラーに関連付けられた ErrorRecord オブジェクト 
   (要素 0) を取得して、一覧に含まれるエラー オブジェクトのすべてのプロパティを書式設定します。
           
        PS> $error[0] | format-list -property * -force

        例外  : System.Management.Automation.ItemNotFoundException: 
                パス 'C:\nofile.txt' が存在しないため検出できません。
                System.Management.Automation.SessionStateInternal.
                GetChildItems(String path, Boolean recurse, CmdletProviderContext 
                context)、at System.Management.Automation.ChildItemCmdletProvider
                Intrinsics.Get(String path, Boolean recurse, CmdletProviderContext 
                context)、at Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord() : 
        TargetObject          : C:\nofile.txt
        CategoryInfo          : オブジェクト未検出: (C:\nofile.txt:String) [Get-ChildItem]、
                                ItemNotFoundException 
        FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand :
        ErrorDetails          :
        InvocationInfo        : System.Management.Automation.InvocationInfo


$FormatEnumerationLimit
-----------------------
        表示に含まれる、列挙された項目の数を指定します。この変数は表示にのみ影響し、
        基になるオブジェクトには影響しません。$FormatEnumerationLimit の値が列挙された
        項目の数より小さい場合、Windows PowerShell は、表示されていない項目があることを
        示す省略記号 (...) を追加します。

        有効な値: 整数 (Int32)
        既定値: 4

    例

        この例は、$FormatEnumerationLimit 変数を使用して、列挙された項目の表示を改善する方法を示しています。

        この例に示すコマンドを使用すると、コンピューター上で実行しているすべてのサービスを、実行中のサ
        ービスと停止しているサービスの 2 つのグループに分けて一覧表示する表が生成されます。Get-Service 
        コマンドを使用してすべてのサービスを取得し、パイプラインを介して結果を Group-Object コマンドレット
        に送ります。このコマンドレットは、サービスの状態に基づいて結果をグループ化します。

        結果は表形式で、Name 列に状態、Group 列にその状態のプロセスが列挙されます (列のラベルを変更
        するには、ハッシュ テーブルを使用します)。詳細については、「get-help format-table -examples」
        に示す例を参照してください。

        それぞれの状態の Group 列には最大で 4 つのサービスが列挙されます。列挙される項目の数を増加する
        には、$FormatEnumerationLimit の値を 1000 に増やします。

        結果表示では、Group 列の一覧が行の長さで制限されるようになります。例に示す最後のコマンドで
        は、Format-Table の Wrap パラメーターを使用して、各 Status グループにすべてのプロセスを表示します。
         

        PS> $formatenumerationlimit         # 現在の値を検索します。
        4
        
        PS> get-service | group-object -property status           
                                            # すべてのサービスを、状態に基づいてグループ化して一
                                              覧表示します。

        Count Name                      Group
        ----- ----                      -----
           60 Running                   {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
           41 Stopped                   {Alerter, AppMgmt, aspnet_state, ATI Smart...}

                                           # 一覧の 4 つ目以降の項目が切り捨てられます。

        PS> $formatenumerationlimit = 1000
                                           # 制限値を 1000 に増やします。
        
        PS> get-service | group-object -property status           
                                           # コマンドを繰り返します。

        Count Name       Group
        ----- ----       -----
           60 Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
           41 Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...


        PS> get-service | group-object -property status | format-table -wrap
                                           # Wrap パラメーターを追加します。

        Count Name       Group
        ----- ----       -----
           60 Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec, Client 
                         for NFS, CryptSvc, DcomLaunch, Dhcp, dmserver, Dnscache, ERSvc,  
                         Eventlog, EventSystem, FwcAgent, helpsvc, HidServ, IISADMIN, InoRPC, 
                         InoRT, InoTask, lanmanserver, lanmanworkstation, LmHosts, MDM, 
                         Netlogon, Netman, Nla, NtLmSsp, PlugPlay, PolicyAgent, 
                         ProtectedStorage, RasMan, RemoteRegistry, RpcSs, SamSs, 
                         Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, 
                         SMT PSVC, Spooler, srservice, SSDPSRV, stisvc, TapiSrv, 
                         TermService, Themes, TrkWks, UMWdf, W32Time, W3SVC, 
                         WebClient, winmgmt, wscsvc, wuauserv, WZCSVC, zzInterix}

           41 Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc, 
                         ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp, CronService, 
                         dmadmin, FastUserSwitchingCompatibility, HTTPFilter, ImapiService, 
                         Mapsvc, Messenger, mnmsrvc, MSDTC, MSIServer, msvsmon80, NetDDE, 
                         NetDDEdsdm, NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess, 
                         RpcLocator, RSVP, SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, 
                         UPS, VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}


$Log*Event
----------
        Log*Event ユーザー設定変数は、イベント ビューアーの Windows PowerShell イベント ログに書き込まれ
        るイベントの種類を決定します。既定では、エンジンおよびプロバイダー イベントのみがログに記録され
        ますが、Log*Event preference 変数を使用して、コマンドに関するイベントのログへの記録など、ログをカス
        タマイズすることもできます。

        Log*Event ユーザー設定変数は次のとおりです。

            $LogCommandHealthEvent: コマンドの初期化と処理でのエラーおよび例外をログに記録します。
                既定は、$false (ログに記録しない) です。

            $LogCommandLifecycleEvent:
                コマンドやコマンド パイプラインの開始と停止、およびコマンド探索でのセキュリティの
                例外をログに記録します。既定は、$false (ログに記録しない) です。

            $LogEngineHealthEvent: セッションのエラーおよび障害をログに記録します。既定は、
                $true (ログに記録する) です。

            $LogEngineLifecycleEvent: セッションの開始と終了をログに記録します。既定は、
                $true (ログに記録する) です。

            $LogProviderHealthEvent: 読み取りおよび書き込みのエラー、参照エラー、
                呼び出しエラーなど、プロバイダーのエラーをログに記録します。既定は、
                $true (ログに記録する) です。

            $LogProviderLifecycleEvent: Windows PowerShell プロバイダーの追加と削除をログに記録します。
                既定は、$true (ログに記録する) です。Windows PowerShell プロバイダーに関する情報を表示
                するには、次のように入力します。
                get-help about_provider


        Log*Event を有効にするには、値を $true に設定して変数を入力します。次に例を示します。

            $LogCommandLifeCycleEvent

            - または -

            $LogCommandLifeCycleEvent = $true


        イベントの種類を無効にするには、値を $false に設定して変数を入力します。次に例を示します。

            $LogCommandLifeCycleEvent = $false

        有効にしたイベントは、現在の Windows PowerShell コンソールに対してのみ有効になります。
        すべてのコンソールに設定を適用するには、Windows PowerShell プロファイルに変数の設定を保存します。


$MaximumAliasCount
------------------
        Windows PowerShell セッションで許可されるエイリアスの数を指定します。
        ほとんどの場合には既定値の 4096 で十分ですが、ニーズに合わせて調整できます。

        有効な値: 1024 ~ 32768 (Int32)
        既定: 4096
      
        システム上のエイリアスの数をカウントするには、次のように入力します。
        
        (get-alias).count

$MaximumDriveCount
------------------
        任意のセッションで許可される Windows PowerShell ドライブの数を指定します。これには、
        Windows PowerShell プロバイダーによって公開され、Alias: ドライブ、HKLM: ドライブなどの
        ドライブとして表示されている、ファイル システム ドライブおよびデータ ストアが含まれます。

        有効な値: 1024 ~ 32768 (Int32)
        既定: 4096
      
        システム上のエイリアスの数をカウントするには、次のように入力します。
        (get-psdrive).count



$MaximumErrorCount
------------------
        セッションのエラー履歴に保存されるエラーの数を指定します。

        有効な値: 256 ~ 32768 (Int32)
        既定: 256

        保持された各エラーを表すオブジェクトは、$Error 自動変数に保存されます。この変数には、エラーご
        とに 1 つのエラー レコード オブジェクトの配列が含まれています。配列内の最初のオブジェクトが最新
        のエラーです ($Error[0])。
      
        システム上のエラーの数をカウントするには、$Error 配列の Count プロパティを使用します。次のよ
        うに入力します。
        
        $Error.count

        特定のエラーを表示するには、配列表記を使用してエラーを表示します。たとえば、最新のエラーを表示するには、
        次のように入力します。

                $Error[0]

        保持された最も古いエラーを表示するには、次のように入力します。

                $Error[($Error.Count -1]

        ErrorRecord オブジェクトのプロパティを表示するには、次のように入力します。

                $Error[0] | format-list -property * -force

        このコマンドにおいて、Force パラメーターは、ErrorRecord オブジェクトの特殊な書式設定を上書きして
        通常の書式に戻します。

        エラー履歴からすべてのエラーを削除するには、エラー配列の Clear メソッドを使用します。

               PS> $Error.count
               17
               PS> $Error.clear()
               PS>
               PS> $Error.count
               0

       エラー配列のすべてのプロパティおよびメソッドを参照するには、Get-Member コマンドレットを 
       InputObject パラメーターと一緒に使用します。オブジェクトのコレクションを Get-Member にパイプすると、
       Get-Member によってコレクション内のオブジェクトのプロパティおよびメソッドが表示されます。Get-
       Member の InputObject パラメーターを使用すると、Get-Member によってコレクションのプロパティおよ
       びメソッドが表示されます。


$MaximumFunctionCount
------------------
        任意のセッションで許可される関数の数を指定します。

        有効な値: 1024 ~ 32768 (Int32)
        既定: 4096

        セッション内の関数を表示するには、Windows PowerShell Function プロバイダーによって公開されている 
        Windows PowerShell の Function: ドライブを使用します (Function プロバイダーの詳細について参照するには、
        「get-help function」と入力してください)。

        現在のセッション内の関数の一覧を表示するには、次のように入力します。

            get-childitem function:

        現在のセッション内の関数をカウントするには、次のように入力します。

            (get-childitem function:).count


$MaximumHistoryCount
------------------
        現在のセッションのコマンド履歴に保存されるコマンドの数を指定します。

        有効な値: 1 ~ 32768 (Int32)
        既定: 64

        現在の時点でコマンド履歴に保存されているコマンドの数を確認するには、次のように入力します。
 
            (get-history).count

        セッション履歴に保存されているコマンドを表示するには、Get-History コマンドレットを使用しま
        す。詳細について参照するには、「get-help about_history」と入力してください。



$MaximumVariableCount
------------------
        自動変数、ユーザー設定変数、コマンドおよびスクリプトに作成される変数など、
        任意のセッションで許可される変数の数を指定します。

        有効な値: 1024 ~ 32768 (Int32)
        既定: 4096

        セッション内の変数を表示するには、Get-Variable コマンドレット、および Windows PowerShell の 
        Variable: ドライブと Windows PowerShell 変数プロバイダーの機能を使用します。
        変数プロバイダーの詳細について参照するには、「get-help variable」と入力してください。

        システム上の現在の変数の数を調べるには、次のように入力します。

            (get-variable).count



$OFS
----
        出力フィールド区切り記号です。配列の要素を区切る文字を指定します。この記号は、
        配列を文字列に変換するときに使用されます。

        有効な値: 任意の文字列
        既定: 空白

        既定では、$OFS 変数は存在せず出力ファイル区切り記号は空白になっていますが、
        この変数を追加して任意の文字列に設定できます。

    例

    この例は、配列を文字列に変換するときに空白を使用して値を区切る場合を示しています。
    この場合、整数の配列が変数に格納され、変数が文字列としてキャストされます。

       PS> $array = 1,2,3                 # 整数の配列を格納します。

       PS> [string]$array                 # 配列を文字列にキャストします。
       1 2 3                              # 空白によって要素が区切られます。


    区切り記号を変更するには、値を代入した $OFS 変数を追加します。正常に機能するには、
    変数の名前が $OFS になっている必要があります。

       PS> $OFS = "+"                     # $OFS を作成して "+" を代入します。

       PS> [string]$array                 # コマンドを繰り返します。
       1+2+3                              # プラス記号によって要素が区切られます。


    既定の動作を復元するには、$OFS の値に空白 (" ") を代入するか、あるいはこの変数を削除します。
    このコマンドでは、変数を削除して、セパレーターが空白になっていることを確認します。
        
       PS> Remove-Variable OFS            # $OFS を削除します。
       PS>

       PS> [string]$array                 # コマンドを繰り返します。
       1 2 3                              # 空白によって要素が区切られます。

$OutputEncoding
---------------
       テキストを他のアプリケーションに送信するときに Windows PowerShell によって使用される文字エン
       コードの方法を決定します。たとえば、アプリケーションが Windows PowerShell に Unicode 
       文字列を返す場合には、値を変更して文字を正しく送信する必要があります。

        有効な値: ASCIIEncoding、SBCSCodePageEncoding、UTF7Encoding、UTF8Encoding、UTF32Encoding、
                  UnicodeEncoding などのエンコーディング クラスから派生するオブジェクト

        既定: ASCIIEncoding オブジェクト (System.Text.ASCIIEncoding)

    例

       この例は、Unicode 文字を使用する言語 (中国語など) にローカライズされたコンピューターの Windows 
       PowerShell で Windows の FindStr コマンドを動作させる方法を示しています。

       最初のコマンドでは、$OutputEncoding の値を検索します。値はエンコーディング オブジェクトである
       ため、EncodingName プロパティのみを表示します。
         
          PS> $OutputEncoding.EncodingName # 現在の値を検索します。
          US-ASCII

       この例では、FindStr コマンドを使用して、Test.txt ファイルに含まれる 2 つの漢字を検索します。この 
       FindStr コマンドが Windows コマンド プロンプト (Cmd.exe) で実行されると、FindStr によってテキスト ファ
       イル内の文字が検索されます。ただし、Windows PowerShell で同じ FindSrt コマンドを実行すると、Windows 
       PowerShell は Unicode テキストではなく ASCII テキストを FindSrt コマンドに送信するため、文字は見つかりません。

          PS> findstr <Unicode-characters>  # FindStr を使用して検索します。
          PS>                               # 見つかりません。

        
       Windows PowerShell でコマンドが動作するようにするには、$OutputEncoding の値を、Windows で選択されてい
       るロケールに基づくコンソールの OutputEncoding プロパティの値に設定します。OutputEncoding はコンソール
       の静的プロパティであるため、コマンドにダブルコロン文字 (::) を使用します。

          PS> $OutputEncoding = [console]::outputencoding
          PS>                               # 値をコンソールの
                                              OutputEncoding プロパティと同じ値に
                                              設定します。
          PS> $OutputEncoding.EncodingName               
          OEM United States
                                            # 結果として得られる値を調べます。
     
       この変更の結果として、FindSrt コマンドによって文字が検索されます。

          PS> findstr <Unicode-characters>               
          test.txt:         <Unicode-characters>        

                    # FindStr を使用して検索します。テキスト 
                                          ファイル内の文字が検索されます。


$ProgressPreference
-------------------
    Write-Progress コマンドレットによって生成される進行状況バーなど、スクリプト、コマンドレット、ま
    たはプロバイダーによって生成される進捗状況の更新に対して Windows PowerShell が応答する方法を決定し
    ます。Write-Progress コマンドレットは、コマンドの状態を表す進捗状況バーを作成します。

        有効な値は次のとおりです。
        Stop:                      進捗状況バーを表示しません。代わりにエラー メッセージを表示し、
                                       実行を停止します。

            Inquire:                   進捗状況バーを表示しません。続行の許可を要求します。Y または A 
                                       と答えると、進捗状況バーが表示されます。

            Continue (既定):           進捗状況バーを表示し、実行を継続します。

            SilentlyContinue:          コマンドが実行されますが、進行状況バーは表示されません。


$PSEmailServer
--------------
       電子メール メッセージを送信する既定の電子メール サーバーを指定します。このユーザー設定変数は、
       Send-MailMessage コマンドレットなど、電子メールを送信するコマンドレットによって使用されます。


$PSSessionApplicationName
---------------------------
       WS-Management 技術を使用するリモート コマンドの既定のアプリケーション名を指定します。

       システムの既定のアプリケーション名は WSMAN ですが、このユーザー設定変数を使用して既定を変更す
       ることができます。

       アプリケーション名は、接続 URI の最後のノードです。たとえば、次のサンプル URI でのアプリケーシ
       ョン名は、WSMAN です。

           http://Server01:8080/WSMAN


       リモート コマンドによって接続 URI またはアプリケーション名が指定されない場合には、既定のアプリケ
       ーション名が使用されます。

       WinRM サービスは、アプリケーション名を使用して接続要求を処理するリスナーを選択します。このパラ
       メーターの値は、リモート コンピューター上のリスナーの URLPrefix プロパティーの値と一致する必要があ
       ります。

       システムの既定およびこの変数の値を上書きして、特定のセッションに別のアプリケーション名を選択するには、
       New-PSSession、Enter-PSSession、または Invoke-Command コマンドレットの ConnectionURI パラメーターまたは 
       ApplicationName パラメーターを使用します。

       このユーザー設定変数はローカル コンピューター上で設定されますが、リモート コンピューター上のリス
       ナーを指定します。指定したアプリケーション名がリモート コンピューター上に存在しない場合、セッショ
       ンを確立するコマンドが失敗します。



$PSSessionConfigurationName
---------------------------
       現在のセッションに作成された PSSessions に使用する既定のセッション構成を指定します。

       このユーザー設定変数はローカル コンピューター上で設定されますが、リモート 
       コンピューター上のセッション構成を指定します。

       $PSSessionConfigurationName 変数の値は、完全修飾リソース URI です。

       既定値は次のとおりです。

         https://schemas.microsoft.com/powershell/microsoft.powershell

       これは、リモート コンピューター上での Microsoft.PowerShell セッションの構成を示します。

       構成名のみを指定すると、次のスキーマ URI が付加されます。

           https://schemas.microsoft.com/powershell/

             
       New-PSSession、Enter-PSSession、または Invoke-Command コマンドレットの ConfigurationName 
       パラメーターを使用すると、既定を上書きし、特定のセッションに別のセッション構成を選択
       できます。

       この変数の値はいつでも変更できます。この変数の値を変更する場合、選択するセッション構成がリモート 
       コンピューター上に存在している必要があるという点に注意してください。存在しない場合、そのセッショ
       ン構成を使用してセッションを作成するコマンドは失敗します。

       リモート ユーザーがこのコンピューターに接続するセッションを作成する際に使用されるローカル セッシ
       ョン構成は、このユーザー設定変数では決定できません。ただし、ローカル セッション構成に対する許可を
       使用すると、これらのセッション構成を使用できるユーザーを決定できます。


$PSSessionOption
----------------
        リモート セッションにおける、詳しい知識のあるユーザー向けのオプションの既定値を設定します。これ
        らのオプションのユーザー設定は、セッション オプションに対するシステムの既定値を上書きします。

        New-PSSession、Enter-PSSession、Invoke-Command など、セッションを作成するコマンドレッ
        トの SessionOption パラメーターを使用すると、特定のリモート セッションにカスタム オプションを設定
        することもできます。SessionOption パラメーターの値は、システムの既定およびこの変数に設定されている
        既定よりも優先されます。

        $PSSessionOption 変数には、PSSessionOption オブジェクトが含まれています 
        (System.Management.Automation.Remoting.PSSessionObject)。オブジェクトの各プロパティは、
        セッションのオプションを表します。たとえば、NoCompression プロパティは、セッション中に
        行われるデータ圧縮の有効と無効を切り替えます。

        $PSSessionOption ユーザー設定変数を作成するには、New-PSSessionOption コマンドレットを使用します。
        $PSSessionOption という変数に出力を保存します。

        次に例を示します。

            $PSSessionOption = New-PSSessionOption -NoCompression
        
        すべての Windows PowerShell セッションで $PSSessionOption ユーザー設定変数を使用
        するには、Windows PowerShell プロファイルに、$PSSessionOption 変数を作成する 
        New-PSSessionOption コマンドを追加します。

        New-PSSessionOption コマンドレットの詳細については、New-PSSessionOption のヘルプ トピッ
        クを参照してください。リモート コマンドおよびリモートセッションの詳細については、
        「about_Remote」および「about_PSSessions」を参照してください。プロファイルを使用
        する方法の詳細については、「about_Profiles」を参照してください。




$VerbosePreference
------------------
        Write-Verbose コマンドレットによって生成されるメッセージなど、スクリプト、コマンドレッ
        ト、またはプロバイダーによって生成される詳細メッセージに対して Windows PowerShell が応答する方法を
        決定します。通常、詳細メッセージでは、コマンドを実行するためのアクションについて記述されています。
        既定では詳細メッセージは表示されませんが、$VerbosePreference の値を変更することによってこの動作を
        変更できます。

        コマンドレットの Verbose 共通パラメーターを使用して、特定のコマンドの詳細メッセージの表示と非表
        示を切り替えることもできます。詳細について参照するには、「get-help about_commonparameters」
        と入力してください。


        有効な値は次のとおりです。
        Stop:                    詳細メッセージおよびエラー メッセージを表示し、実行を停止します。

            Inquire:                 詳細メッセージを表示し、続行するかどうかを確認するプロンプトを表
                                     示します。

            Continue:                詳細メッセージを表示し、実行を継続します。

            SilentlyContinue (既定): 詳細メッセージを表示しません。実行を継続します。

    例

    これらの例は、$VerbosePreference に異なる値を使用したときの結果、および Verbose 共通パラメーター
    を使用してユーザー設定値を上書きしたときの結果を示しています。
    
    この例は、既定の SilentlyContinue という値を使用したときの結果を示しています。

        PS> $VerbosePreference             # 現在の値を検索します。
        SilentlyContinue

        PS> Write-Verbose "Verbose message test."              
        PS>                                # 詳細メッセージを書き込みます。
                                           # メッセージは表示されません。

        PS> Write-Verbose "Verbose message test."-verbose
        VERBOSE: Verbose message test.
                                       # Verbose パラメーターを使用します。


    この例は、Continue という値を使用したときの結果を示しています。

        PS> $VerbosePreference = "Continue"                    
                                           # 値を Continue に変更します。
        PS> Write-Verbose "Verbose message test."              
                                           # 詳細メッセージを書き込みます。
        VERBOSE: Verbose message test.                          
                                           # メッセージが表示されます。

        PS> Write-Verbose "Verbose message test."-verbose:$false
                                           # 値を $false に設定して Verbose 
                                             パラメーターを使用します。
        PS>                                  
                                           # メッセージは表示されません。


    この例は、Stop という値を使用したときの結果を示しています。

        PS> $VerbosePreference = "Stop"                        
                                           # 値を Stop に変更します。
        PS> Write-Verbose "Verbose message test."              
                                           # 詳細メッセージを書き込みます。
        VERBOSE: Verbose message test.
        Write-Verbose : シェル変数 "VerbosePreference" が Stop に設定されたためコマンドが停止
        しました。
        行: 1 文字: 14
        + Write-Verbose <<<< "Verbose message test."

       PS> Write-Verbose "Verbose message test."-verbose:$false
                                          # 値を $false に設定して Verbose 
                                            パラメーターを使用します。
       PS>                                  
                                          # メッセージは表示されません。

    この例は、Inquire という値を使用したときの結果を示しています。

       PS> $VerbosePreference = "Inquire"                      
                                         # 値を Inquire に変更します。
       PS> Write-Verbose "Verbose message test."               
       VERBOSE: Verbose message test.
                                         # 詳細メッセージを書き込みます。
       確認
       この操作を続行しますか?
       [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"): y

       PS> Write-Verbose "Verbose message test."-verbose:$false
                                        # Verbose パラメーターを使用します。
       PS>                              
                                        # メッセージは表示されません。


    
$WarningPreference
------------------
        Write-Warning コマンドレットによって生成されるメッセージなど、スクリプト、コマンドレット、ま
        たはプロバイダーによって生成される警告メッセージに対して Windows PowerShell が応答する方法を決定
        します。

        既定では、警告メッセージが表示されて実行が継続されますが、$WarningPreference の値を変更することに
        よってこの動作を変更できます。

        コマンドレットの WarningAction 共通パラメーターを使用して、Windows PowerShell が特定のコマンドか
        らの警告に応答する方法を決定することもできます。詳細について参照するには、「get-help 
        about_commonparameters」と入力してください。


        有効な値は次のとおりです。
        Stop:               警告メッセージおよびエラー メッセージを表示し、実行を停止します。

            Inquire:            警告メッセージを表示し、続行の許可を要求します。

            Continue (既定):    警告メッセージを表示し、実行を継続します。

            SilentlyContinue:   警告メッセージを表示しません。実行を継続します。

    例

    これらの例は、$WarningPreference の異なる値を使用したときの結果、および WarningAction 共通パラメーター
    を使用して設定値を上書きしたときの結果を示しています。

    
    この例は、既定の Continue という値を使用したときの結果を示しています。

            PS> $WarningPreference    # 現在の値を検索します。       
            Continue                  

                                      # 警告メッセージを書き込みます。
            PS> Write-Warning "この操作によってデータが削除されます。"
            警告: この操作によってデータが削除されます。
                                        
                                      # WarningAction パラメーターを使用して、
                                      # このコマンドの警告が表示されないようにします。
            PS> Write-Warning "この操作によってデータが削除されます。" -warningaction silentlycontinue



   この例は、SilentlyContinue という値を使用したときの結果を示しています。

            PS> $WarningPreference = "SilentlyContinue"           
                                      # 値を SilentlyContinue に変更します。
 
            PS> Write-Warning "この操作によってデータが削除されます。"
            PS>                       # 警告メッセージを書き込みます。

       
            PS> Write-Warning "この操作によってデータが削除されます。" -warningaction stop
                                      # WarningAction パラメーターを使用して、
                                      # このコマンドによって警告が生成されるときに
                                      # 処理を停止します。
            警告: この操作によってデータが削除されます。
            Write-Warning : シェル変数 "WarningPreference" が Stop に設定されたためコマンドが
            停止しました。
            行: 1 文字: 14
            + Write-Warning <<<< "この操作によってデータが削除されます。"-warningaction stop


    この例は、Inquire という値を使用したときの結果を示しています。

           PS> $WarningPreference = "Inquire"                    
                                      # 値を Inquire に変更します。
           PS> Write-Warning "この操作によってデータが削除されます。"
                                      # 警告メッセージを書き込みます。
           警告: この操作によってデータが削除されます。

           確認
           この操作を続行しますか?
           [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"): y
           PS>

           PS> Write-Warning "この操作によってデータが削除されます。" -warningaction silentlycontinue
           PS>                         # WarningAction パラメーターを使用して、
                                       # 現在のコマンドに対する警告への応答を変更します。



     この例は、Stop という値を使用したときの結果を示しています。

           PS> $WarningPreference = "Stop"                       
                                     # 値を Stop に変更します。

           PS> Write-Warning "この操作によってデータが削除されます。"
                                     # 警告メッセージを書き込みます。
           警告: この操作によってデータが削除されます。
           Write-Warning : シェル変数 "WarningPreference" が Stop に設定されたためコマンドが停
           止しました。
           行: 1 文字: 14
           + Write-Warning <<<< "この操作によってデータが削除されます。"


           PS> Write-Warning "この操作によってデータが削除されます。"-warningaction inquire
           警告: この操作によってデータが削除されます。

           確認
           この操作を続行しますか?
           [Y] はい  [A] すべて続行  [H] コマンドの中止  [S] 中断  [?] ヘルプ (既定は "Y"):
                                        # WarningAction パラメーターを使用して、
                                        # 現在のコマンドに対する警告への応答を変更します。


$WhatIfPreference
------------------
        WhatIf をサポートするすべてのコマンドに対して WhatIf が自動的に有効になるかどうかを決定しま
        す。WhatIf が有効になると、コマンドレットによってコマンドの予想結果が報告されますが、コマンドは実
        行されません。

        有効な値は次のとおりです。
        0:                  WhatIf は自動的には有効になりません。手動で有効にするには、
            (既定)              コマンドの WhatIf パラメーターを使用します。
            

            1:                  WhatIf をサポートするコマンドで WhatIf が自動的に有効になります。
                                WhatIf を手動で無効にするには、値を false に設定して WhatIf コマンドを使
                                用します (WhatIf:$false)。

    詳細説明

        コマンドレットが WhatIf をサポートしている場合、コマンドが実行される代わりに、コマンドレットに
        よってコマンドの予想結果が報告されます。たとえば、Windows PowerShell は、Remove-Item コマンドに
        応答して test.txt ファイルを削除する代わりに、何が削除されるかを報告します。その後、Get-Childitem 
        コマンドを実行することで、ファイルが削除されていないことを確認します。

              PS> remove-item test.txt
              What if: 対象 "Item: C:\test.txt" に対して操作 "Remove-Item" 
                を実行しています。
              PS> get-childitem test.txt

              ディレクトリ: Microsoft.PowerShell.Core\FileSystem::C:


              Mode                LastWriteTime     Length     Name
              ----                -------------     ------     ----
              -a---         7/29/2006   7:15 PM         84     test.txt



    例

    これらの例は、$WhatIfPreference の異なる値を使用したときの結果を示しています。また、WhatIf コマンドレ
    ットを使用して、特定のコマンドのユーザー設定値を上書きする方法も示しています。
    
    この例は、既定の 0 (有効にしない) という値を使用したときの結果を示しています。

             PS> $whatifpreference                     
             0                         # 現在の値を確認します。

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                       # ファイルが存在することを確認します。

             PS> remove-item test.txt                  
             PS>                       # ファイルを削除します。

             PS> get-childitem test.txt | format-list -property FullName
                                       # ファイルが削除されていることを確認します。

             Get-ChildItem: パス 'C:\test.txt' が存在しないため検出できません。
             行: 1 文字: 14
             + get-childitem <<<< test.txt | format-list fullname


     この例は、$WhatIfPreference の値が 0 の場合に WhatIf パラメーターを使用したときの結果を示しています。

             PS> get-childitem test2.txt | format-list -property FullName
             FullName : C:\test2.txt
                                      # ファイルが存在することを確認します。

             PS> remove-item test2.txt -whatif         
             WhatIf: 対象 "C:\test2.txt" に対して操作 "ファイルの削除" を実行しています。
                                      # WhatIf パラメーターを使用します。

             PS> get-childitem test2.txt | format-list -property FullName
             FullName : C:\test2.txt
                                      # ファイルが削除されていないことを確認します。
    この例は、1 (WhatIf が有効) という値を使用したときの結果を示しています。コマンドレットを削除する 
    Remove-Item を使用すると、Remove-Item によって削除されるファイルへのパスが表示されますが、ファイ
    ルは削除されません。

             PS> $whatifpreference = 1                 
             PS> $whatifpreference
             1                        # 値を変更します。
                                      
             PS> remove-item test.txt                  
             WhatIf: 対象 "C:\test.txt" に対して操作 "ファイルの削除" を実行しています。
                                      # ファイルの削除を試みます。

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                      # ファイルが存在することを確認します。

     この例は、$WhatIfPreference の値が 1 である場合にファイルを削除する方法を示しています。
     値を $false に設定して WhatIf パラメーターを使用します。

             PS> remove-item test.txt -whatif:$false
                                      # $false に設定して WhatIf パラメーターを使用します。

     この例は、WhatIf の動作をサポートするコマンドレットとサポートしないコマンドレットがあることを示して
     います。この例では、$WhatIfPreference の値が 1 (有効) になっています。Get-Process を実行すると、こ
     のコマンドは WhatIf をサポートしませんが、Stop-Process コマンドで WhatIf の動作が実行されます。
     値を $false に設定して WhatIf パラメーターを使用することで、Stop-Process コマンドの WhatIf の動作を
     上書きできます。

            PS> $whatifpreference = 1                  
                                     # 値を 1 に変更します。
                                                      
            PS> get-process winword
                                    # Get-Process コマンドが完了します。

            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
            -------  ------    -----      ----- -----   ------     -- -----------
                234       8     6324      15060   154     0.36   2312 WINWORD

           PS> stop-process -name winword
           What if: 対象 "WINWORD (2312)" に対して操作 "Stop-Process" を実行しています。
                                    # Stop-Process コマンドによって WhatIf が使用されます。

           PS> stop-process -name winword -whatif:$false
           PS>                      # WhatIf:$false によって設定値が上書きされます。
           
           PS> get-process winword                     
           Get-Process: 名前 'winword' のプロセスが見つかりません。プロセス名を確認し、コマンドレ
           ットを再度呼び出してください。
           行: 1 文字: 12
           + get-process <<<< winword
                                    # プロセスが停止していることを確認します。



関連項目

    about_Automatic_Variables
    about_CommonParameters
    about_Environment_Variables
    about_Profiles
    about_Remote
    about_Scopes
    about_Variables