PowerShell HelpFile - about_preference_variables
 記事記号:[me1556] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

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

簡易説明
    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          http://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 プロファイルに値を追加します。詳細については、「abo
    ut_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 または H
                             igh の場合に、自動確認メッセージが表示されます。特
                             定のコマンドの確認メッセージを表示するには、-confir
                             m を使用します。特定のコマンドの確認メッセージが表
                             示されないようにするには、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 または Lo
        w に変更することによって、自動確認メッセージをアクティブ化できます。

    例
      この例は、$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-D 
        ebug コマンドによって生成されるデバッグ メッセージに対して Windows Power
        Shell が応答する方法を決定します。

        一部のコマンドレットはデバッグ メッセージを表示しますが、これらは通常、
        プログラマーおよびテクニカル サポートの専門家を対象とした非常に技術的
        なメッセージです。既定では、デバッグ メッセージは表示されませんが、
        $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 共通パラメーターを使用して、特定のコマンド
        のユーザー設定を上書きすることもできます。詳細について参照するには、「g
        et-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}:{Tar
                                       getType}):[{Activity}], {Reason} という
                                       形式が使用されます。

        CategoryView のフィールドの詳細については、MSDN の「Windows PowerShell 
        SDK」で「ErrorCategoryInfo Class (ErrorCategoryInfo クラス)」(http://m
        sdn.microsoft.com/ja-jp/library/system.management.automation.errorcate
        goryinfo(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]、ItemNotFound
        Exception
 
   この例は、ErrorView の値がエラー表示にのみ影響することを示しています。$error 
   automatic 変数に格納されているエラー オブジェクトの構造は変更されません。$er
   ror 自動変数の詳細については、「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.Pro
                cessRecord() : 
        TargetObject          : C:\nofile.txt
        CategoryInfo          : オブジェクト未検出: (C:\nofile.txt:String) [Get-Ch
                                ildItem]、ItemNotFoundException 
        FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChil
                                dItemCommand :
        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 パラメーターを使用して、各 St
        atus グループにすべてのプロセスを表示します。 

        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, Ccm 
                         Exec, Client for NFS, CryptSvc, DcomLaunch, Dhcp, dmse 
                         rver, Dnscache, ERSvc, Eventlog, EventSystem, FwcAgent, 
                         helpsvc, HidServ, IISADMIN, InoRPC, InoRT, InoTask, la
                         nmanserver, 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, Ci
                         Svc, ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp, 
                         CronService, dmadmin, FastUserSwitchingCompatibility, H
                         TTPFilter, ImapiService, Mapsvc, Messenger, mnmsrvc, MS
                         DTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm, NtmsSvc, 
                         NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess, RpcLocato
                         r, RSVP, SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, 
                         UPS, VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}

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

        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 PowerS
        hell プロファイルに変数の設定を保存します。


$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 の I
       nputObject パラメーターを使用すると、Get-Member によってコレクションのプ
       ロパティおよびメソッドが表示されます。

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

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

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

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

            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 コマンドレット、および Wi
        ndows PowerShell の Variable: ドライブと Windows PowerShell 変数プロバイ
        ダーの機能を使用します。変数プロバイダーの詳細について参照するには、「ge
        t-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、UTF8Encodi
        ng、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   # FindStr を使用して検索します。
          PS>                               # 見つかりません。

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

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

          PS> findstr                
          test.txt:                 

					# 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、または Inv
       oke-Command コマンドレットの ConnectionURI パラメーターまたは Applicatio
       nName パラメーターを使用します。

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

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

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

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

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

         http://schemas.microsoft.com/powershell/microsoft.powershell

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

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

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

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

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


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

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

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

        $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_Profil
        es」を参照してください。

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

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

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

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

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

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

    例

    これらの例は、$VerbosePreference に異なる値を使用したときの結果、および Verb
    ose 共通パラメーターを使用してユーザー設定値を上書きしたときの結果を示してい
    ます。
    
    この例は、既定の 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 が応答する方法を決定します。

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

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

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

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

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

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

    例

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

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

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

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

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

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


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

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

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

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

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

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

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


           PS> Write-Warning "この操作によってデータが削除されます。"-warningact
           ion 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
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_preference_variables
ご利用数: 1862295
感想・要望・問い合わせは こちら