about_Preference_Variables

適用対象: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

トピック

ユーザー設定変数

概要

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

詳細説明

Windows PowerShell には、動作をカスタマイズできる一連の変数があります。"ユーザー設定変数" と呼ばれるこれらの変数は、GUI ベースのシステムにおけるオプションのように機能します。

ユーザー設定変数は Windows PowerShell のオペレーティング環境と、その環境で実行されるすべてのコマンドに影響を与えます。多くの場合、コマンドレットには、特定のコマンドのユーザー設定の動作を上書きできるパラメーターがあります。

次の表に、ユーザー設定変数とその既定値を示します。

    Variable                             Default Value
    --------                             -------------
    $ConfirmPreference                   High
    $DebugPreference                     SilentlyContinue
    $ErrorActionPreference               Continue
    $ErrorView                           NormalView
    $FormatEnumerationLimit              4
    $LogCommandHealthEvent               False (not logged)
    $LogCommandLifecycleEvent            False (not logged)
    $LogEngineHealthEvent                True (logged)
    $LogEngineLifecycleEvent             True (logged)
    $LogProviderLifecycleEvent           True (logged)
    $LogProviderHealthEvent              True (logged)
    $MaximumAliasCount                   4096
    $MaximumDriveCount                   4096
    $MaximumErrorCount                   256
    $MaximumFunctionCount                4096
    $MaximumHistoryCount                 4096
    $MaximumVariableCount                4096
    $OFS                                 (Space character (" "))
    $OutputEncoding                      ASCIIEncoding object
    $ProgressPreference                  Continue
    $PSDefaultParameterValues            (None - empty hash table)     
    $PSEmailServer                       (None)
    $PSModuleAutoLoadingPreference       All
    $PSSessionApplicationName            WSMAN
    $PSSessionConfigurationName          https://schemas.microsoft.com/PowerShell/microsoft.PowerShell 
    $PSSessionOption                     (See below)
    $VerbosePreference                   SilentlyContinue
    $WarningPreference                   Continue
    $WhatIfPreference                    0

Windows PowerShell には、ユーザー設定を格納する次の環境変数もあります。これらの環境変数の詳細については、「about_Environment_Variables」を参照してください。

    Variable                                         
    --------    
    PSExecutionPolicyPreference                     
    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
------------------

コマンドレットまたは関数を実行する前に、Windows PowerShell から確認を求めるプロンプトを自動的に表示するかどうかを決定します。

$ConfirmPreference 変数の値 (High、Medium、Low) がコマンドレットまたは関数に割り当てられたリスク (High、Medium、Low) 以下のとき、コマンドレットまたは関数を実行する前に、Windows PowerShell から確認を求めるプロンプトが自動的に表示されます。

$ConfirmPreference 変数の値が None の場合は、コマンドレットまたは関数を実行する前に Windows PowerShell からプロンプトが表示されません。

このセッションのすべてのコマンドレットと関数に対する確認の動作を変更するには、$ConfirmPreference 変数の値を変更します。

1 つのコマンドの $ConfirmPreference を上書きするには、コマンドレットまたは関数の Confirm パラメーターを使用します。確認を要求するには、-Confirm を使用します。確認が表示されないようにするには、-Confirm:$false を使用します。

$ConfirmPreference の有効な値は次のとおりです。

None: Windows PowerShell はプロンプトを自動的に表示しません。特定のコマンドの確認を要求するには、コマンドレットまたは関数の Confirm パラメーターを使用します。

Low:リスクが High、Medium、High のコマンドレットまたは関数を実行する前に、確認のプロンプトが表示されます。

Medium:リスクが Medium または High のコマンドレットまたは関数を実行する前に、確認のプロンプトが表示されます。

High:リスクが High のコマンドレットまたは関数を実行する前に、確認のプロンプトが表示されます。

詳細説明

データの削除や大量のシステム リソースの使用のように、コマンドレットまたは関数の動作がシステムに大幅に影響を与えるとき、操作を実行する前に、確認のプロンプトが Windows PowerShell によって自動的に表示されます。

例:

    PS> remove-item file.txt

            Confirm
            Are you sure you want to perform this action?
            Performing operation "Remove File" on Target "C:\file.txt".
            [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

リスクの評価には、"ConfirmImpact" と呼ばれる、コマンドレットまたは関数の属性が使用されます。ユーザーは変更できません。

システムにリスクを引き起こす可能性のあるコマンドレットと関数には、1 つのコマンドに対する確認を要求または非表示にするために使用できる Confirm パラメーターがあります。

ほとんどのコマンドレットと関数はリスクの既定値 (ConfirmImpact) に Medium を使用しています。$ConfirmPreference の既定値は High であるため、自動的に確認メッセージが表示されることはほとんどありません。ただし、$ConfirmPreference の値を Medium または Low に変更することによって、自動確認を有効にすることができます。

次の例は、$ConfirmPreference の既定値の結果を示しています。値が High の場合、リスクの高いコマンドレットと関数にのみ確認プロンプトが表示されます。ほとんどのコマンドレットと関数は中程度のリスクであるため、自動的に確認プロンプトが表示されることはありません。

          PS> $confirmpreference              #Get the current value of the
          High                                 variable
          
          PS> remove-item temp1.txt           #Delete a file
          PS>                                 #Deleted without confirmation

           
          PS> remove-item temp2.txt -confirm  #Use the Confirm parameter to
                                               request confirmation

          Confirm
          Are you sure you want to perform this action?
          Performing operation "Remove File" on Target "C:\temp2.txt".
          [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

次の例は、$ConfirmPreference の値を Medium に変更した結果を示しています。ほとんどのコマンドレットと関数が中程度のリスクであるため、自動的に確認プロンプトが表示されます。1 つのコマンドの確認プロンプトを非表示にするには、Confirm パラメーターと値 $false を使用します。

            
          PS> $confirmpreference = "Medium"  #Change the value of $ConfirmPreference
          PS> remove-item temp2.txt          #Deleting a file triggers confirmation         
                                     
          Confirm
          Are you sure you want to perform this action?
          Performing operation "Remove File" on Target "C:\temp2.txt".
          [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):


          PS> remove-item temp3.txt -confirm:$false   #Use Confirm parameter
                                                       to suppress confirmation
          PS>

$DebugPreference
------------------

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

一部のコマンドレットはデバッグ メッセージを表示します。デバッグ メッセージは通常、プログラマやテクニカル サポートの専門家向けに設計された非常に技術的なメッセージです。既定では、デバッグ メッセージは表示されませんが、$DebugPreference の値を変更することによってデバッグ メッセージを表示できます。

また、コマンドレットの Debug 共通パラメーターを使用して、特定のコマンドのデバッグ メッセージを表示または非表示にすることもできます。詳細については、次のように入力してください。「get-help about_commonparameters」

有効な値:

Stop:デバッグ メッセージが表示され、実行が停止されます。コンソールにエラーが出力されます。

Inquire:デバッグ メッセージが表示され、続行するかどうかを確認するメッセージが表示されます。Debug 共通パラメーターをコマンドに追加すると、つまりデバッグ メッセージを生成するようにコマンドを構成すると、$DebugPreference 変数の値が Inquire に変更されます。

Continue:デバッグ メッセージが表示され、実行が続行されます。

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

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

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

        PS> $debugpreference                    # Get the current value of
        SilentlyContinue                          $DebugPreference

        PS> write-debug "Hello, World"
        PS>                                     # The debug message is not
                                                  displayed.

        PS> write-debug "Hello, World" -Debug   # Use the Debug parameter
        DEBUG: Hello, World                     # The debug message is
                                                  is requested.                                                                                                    displayed and confirmation
        Confirm
        Continue with this operation?
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

次の例は、"Continue" 値の結果を示しています。最後のコマンドは、Debug パラメーターに値として $false を設定して、1 つのコマンドのメッセージが表示されないようにしています。

        PS> $debugpreference = "Continue"   # Change the value to "Continue"

        PS> write-debug "Hello, World"
        DEBUG: Hello, World                 # The debug message is displayed
        PS>                                   and processing continues.
                                           

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              false.
        PS>                                 # The debug message is not
                                              displayed.

次の例は、"Stop" 値の結果を示しています。最後のコマンドは、Debug パラメーターに値として $false を設定して、1 つのコマンドのメッセージが表示されないようにしています。

        PS> $debugpreference = "Stop"       #Change the value to "Stop"
        PS> write-debug "Hello, World"
        DEBUG: Hello, World
        Write-Debug : Command execution stopped because the shell variable "DebugPreference" is
        set to Stop.
        At line:1 char:12
        + write-debug  <<<< "Hello, World"

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              $false
        PS>                                 # The debug message is not 
                                              displayed and processing is
                                              not stopped.

次の例は、"Inquire" 値の結果を示しています。最後のコマンドは、Debug パラメーターに値として $false を設定して、1 つのコマンドのメッセージが表示されないようにしています。

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

        Confirm
        Continue with this operation?
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              $false
        PS>                                 # The debug message is not
                                              displayed and processing
                                              continues without interruption.

$ErrorActionPreference
----------------------

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

コマンドレットの ErrorAction 共通パラメーターを使用して、特定のコマンドのユーザー設定を上書きすることもできます。

有効な値:

Stop:エラー メッセージが表示され、実行が停止されます。

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

Continue (既定値):エラー メッセージが表示され、実行が続行されます。

Suspend:さらなる調査のため、ワークフロー ジョブを自動的に中断します。調査の後で、ワークフローを再開できます。

SilentlyContinue:影響を与えません。エラー メッセージは表示されず、中断されることなく実行が続行されます。

注記:

ErrorAction 共通パラメーターの Ignore 値は、$ErrorActionPreference 変数では無効な値です。Ignore 値はコマンドごとに使用します。ユーザー設定として保存して使用することは想定されていません。

$ErrorActionPreference も ErrorAction 共通パラメーターも、終了エラー (コマンドレットの処理が停止されるエラー) に Windows PowerShell が応答する方法に影響を与えません。

ErrorAction 共通パラメーターの詳細については、「about_CommonParameters」(https://go.microsoft.com/fwlink/?LinkID=113216) を参照してください。

以下の例では、$ErrorActionPreference のさまざまな値の結果と、1 つのコマンドのユーザー設定を上書きするための ErrorAction 共通パラメーターの使用方法を示しています。ErrorAction パラメーターには、$ErrorActionPreference 変数と同じ有効な値を使用します。

次の例は、既定値である "Continue" 値の結果を示しています。

        PS> $erroractionpreference                      
        Continue# Display the value of the preference.          
                                  
        PS> write-error "Hello, World"                  
                                # Generate a non-terminating error.

        write-error "Hello, World" : Hello, World       
                                # The error message is displayed and
                                  execution continues.

        PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
                                # Use the ErrorAction parameter with a 
                                  value of "SilentlyContinue".
        PS>                                             
                                # The error message is not displayed and
                                  execution continues.

次の例は、"SilentlyContinue" 値の結果を示しています。

        PS> $ErrorActionPreference = "SilentlyContinue"
                                # Change the value of the preference.
        PS> write-error "Hello, World"                  
                                # Generate an error message.
        PS>                     
                                # Error message is suppressed.
        PS> write-error "Hello, World" -erroraction:continue
                                # Use the ErrorAction parameter with a
                                  value of "Continue".
        write-error "Hello, World" -erroraction:continue : Hello, World
                                # The error message is displayed and
                                  execution continues.

次の例は、実際のエラーの結果を示しています。この例では、コマンドは存在しないファイル nofile.txt を取得します。また、ErrorAction 共通パラメーターを使用して、ユーザー設定を上書きしています。

        PS> $erroractionpreference                      
        SilentlyContinue        # Display the value of the preference.     
                                

        PS> get-childitem -path nofile.txt
        PS>                     # Error message is suppressed.

        PS> $ErrorActionPreference = "Continue" 
                                # Change the value to Continue.

        PS> get-childitem -path nofile.txt
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:4
        + get-childitem  <<<< nofile.txt

        PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
                                # Use the ErrorAction parameter
        PS>                     
                                # Error message is suppressed.
  
        PS> $ErrorActionPreference = "Inquire"          
                                # Change the value to Inquire.
        PS> get-childitem -path nofile.txt

        Confirm
        Cannot find path 'C:\nofile.txt' because it does not exist.
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"): y
        
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:4
        + get-childitem  <<<< nofile.txt

        PS> $ErrorActionPreference = "Continue"                  
                                # Change the value to Continue.
        PS> Get-Childitem nofile.txt -erroraction "Inquire"      
                                # Use the ErrorAction parameter to override
                                  the preference value.

        Confirm
        Cannot find path 'C:\nofile.txt' because it does not exist.         
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

$ErrorView
----------

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

有効な値

NormalView (既定値):ほとんどのユーザー向けに設計された詳細ビューです。エラーの説明、エラーに関係するオブジェクトの名前、エラーの原因となったコマンド内の単語を指す矢印 (<<<<) で構成されます。

CategoryView:実稼働環境用に設計された簡潔な構造化されたビューです。形式は次のとおりです。{Category}:({TargetName}:{TargetType}):[{Activity}], {Reason}

CategoryView 内のフィールドの詳細については、Windows PowerShell SDK の「ErrorCategoryInfo クラス」を参照してください。

以下の例は、$ErrorView の値の結果を示しています。

この例は、$ErrorView の値が NormalView のときにエラーが表示される方法を示します。この例では、Get-ChildItem コマンドが、存在しないファイルを検索するために使用されています。

        PS> $ErrorView                         # Verify the value.
        NormalView

        PS> get-childitem nofile.txt           # Find a non-existent file.
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:14
        + get-childitem  <<<< nofile.txt

次の例は、$ErrorView の値が CategoryView のときに同じエラーが表示される方法を示します。

        PS> $ErrorView = "CategoryView"        # Change the value to 
                                                 CategoryView

        PS> get-childitem nofile.txt
        ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException

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

このコマンドは、エラーの配列 (要素 0) の最新のエラーに関連付けられている ErrorRecord オブジェクトを取得し、リスト内のエラー オブジェクトのすべてのプロパティを書式設定します。

        PS> $error[0] | format-list -property * -force

        Exception    : System.Management.Automation.ItemNotFoundException: Cannot find path
                       'C:\nofile.txt' because it does not exist.
                       at System.Management.Automation.SessionStateInternal.GetChildItems(String path,
                       Boolean recurse, CmdletProviderContext context)
                       at System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(String path,
                       Boolean recurse, CmdletProviderContext context)
                       at Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord()
        TargetObject          : C:\nofile.txt
        CategoryInfo          : ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
                                ItemNotFoundException
        FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
        ErrorDetails          :
        InvocationInfo        : System.Management.Automation.InvocationInfo

$FormatEnumerationLimit
-----------------------

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

        Valid values: Integers (Int32)
        Default value: 4

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

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

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

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

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

        PS> $formatenumerationlimit         # Find the current value
        4
        
        PS> get-service | group-object -property status           
                                            # List all services grouped by
                                              status

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

                                           # The list is truncated after
                                             4 items.


        PS> $formatenumerationlimit = 1000
                                           # Increase the limit to 1000.
        
        PS> get-service | group-object -property status           
                                           # Repeat the command.

        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
                                           # Add the Wrap parameter.

        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, SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS, 
                         VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}

$Log*Event
----------

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

Log*Event ユーザー設定変数には次のものがあります。

            $LogCommandHealthEvent: Logs errors and exceptions in command initialization
                and processing. Default = $false (not logged).

            $LogCommandLifecycleEvent: 
                Logs the starting and stopping of commands and command pipelines
                and security exceptions in command discovery. Default = $false (not logged).

            $LogEngineHealthEvent: Logs errors and failures of sessions. Default = $true (logged).

            $LogEngineLifecycleEvent: Logs the opening and closing of sessions. 
                Default = $true (logged).

            $LogProviderHealthEvent: Logs provider errors, such as read and write errors,
                lookup errors, and invocation errors. Default = $true (logged).

            $LogProviderLifecycleEvent: Logs adding and removing of Windows PowerShell providers.
                Default = $true (logged). (For information about Windows PowerShell providers, type:
                "get-help about_provider".

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

            $LogCommandLifeCycleEvent

            - or -

            $LogCommandLifeCycleEvent = $true

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

            $LogCommandLifeCycleEvent = $false

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

$MaximumAliasCount
------------------

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

        Valid values: 1024 - 32768 (Int32)
        Default: 4096
      
        To count the aliases on your system, type: 

(get-alias).count

$MaximumDriveCount
------------------

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

        Valid values: 1024 - 32768 (Int32)
        Default: 4096
      
        To count the aliases on your system, type: 

(get-psdrive).count

$MaximumErrorCount
------------------

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

        Valid values: 256 - 32768 (Int32)
        Default: 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
------------------

特定のセッションで許可される関数の数を決定します。

        Valid values: 1024 - 32768 (Int32)
        Default: 4096

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

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

            get-childitem function:

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

            (get-childitem function:).count

$MaximumHistoryCount
------------------

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

        Valid values: 1 - 32768 (Int32)
        Default: 4096

コマンド履歴に現在保存されているコマンドの数を算出するには、次のように入力します。

            (get-history).count

セッション履歴に保存されているコマンドを表示するには、Get-History コマンドレットを使用します。詳細については、「about_History」(https://go.microsoft.com/fwlink/?LinkID=113233) を参照してください。

注記:Windows PowerShell 2.0 では、$MaximumHistoryCount 変数の既定値は 64 です。

$MaximumVariableCount
------------------

自動変数、ユーザー設定変数、コマンドやスクリプトで作成された変数など、特定のセッションで許可される変数の数を決定します。

        Valid values: 1024 - 32768 (Int32)
        Default: 4096

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

システム内の現在の変数の数を確認するには、次のように入力します。

            (get-variable).count

$OFS
----

出力フィールドの区切り記号です。配列が文字列に変換されるときに配列の要素を区切る文字を指定します。

        Valid values: Any string.
        Default: Space

既定では、$OFS 変数は存在せず、出力ファイルの区切り記号はスペースです。ただし、この変数を追加し、任意の文字列に設定することができます。

次の例は、配列が文字列に変換されるときにスペースを使用して値が区切られる状況を示しています。この例では、整数の配列が変数に格納され、変数が文字列としてキャストされます。

       PS> $array = 1,2,3                 # Store an array of integers.       

       PS> [string]$array                 # Cast the array to a string.
       1 2 3                              # Spaces separate the elements

区切り記号を変更するには、値を割り当てて $OFS 変数を追加します。正常に機能するには、この変数に $OFS という名前を付ける必要があります。

       PS> $OFS = "+"                     # Create $OFS and assign a "+"

       PS> [string]$array                 # Repeat the command
       1+2+3                              # Plus signs separate the elements

既定の動作を復元するには、$OFS の値にスペース (" ") を割り当てるか、$OFS 変数を削除します。次のコマンドは、$OFS 変数を削除し、次に、区切り記号がスペースであることを確認します。

       PS> Remove-Variable OFS            # Delete $OFS
       PS>

       PS> [string]$array                 # Repeat the command
       1 2 3                              # Spaces separate the elements
       

$OutputEncoding
---------------

Windows PowerShell が他のアプリケーションにテキストを送信するときに使用される文字のエンコード方法を決定します。

たとえば、アプリケーションが Unicode 文字列を Windows PowerShell に返す場合、文字を正しく送信するため、この値を UnicodeEncoding に変更することが必要になる場合があります。

        Valid values: Objects derived from an Encoding class, such as
                      ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding, 
                      UTF8Encoding, UTF32Encoding, and UnicodeEncoding.

        Default: ASCIIEncoding object (System.Text.ASCIIEncoding)

次の例は、中国語などの Unicode 文字を使用する言語にローカライズされているコンピューター上の Windows PowerShell で Windows の FINDSTR コマンドを動作させる方法を示しています。最初のコマンドは、$OutputEncoding の値を検索します。値がエンコード オブジェクトであるため、EncodingName プロパティのみを表示します。

          PS> $OutputEncoding.EncodingName  # Find the current value
          US-ASCII

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

          PS> findstr <Unicode-characters>  # Use findstr to search.
          PS>                               # None found.

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

          PS> $OutputEncoding = [console]::outputencoding
          PS>                               # Set the value equal to the
                                              OutputEncoding property of the
                                              console.
          PS> $OutputEncoding.EncodingName               
          OEM United States
                                            # Find the resulting value.

この変更の結果、FINDSTR コマンドによって文字が検索されます。

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

# Use findstr to search. It find the
                                          characters in the text file.

$ProgressPreference
-------------------

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

有効な値:

Stop:進行状況バーは表示されません。代わりに、エラー メッセージが表示され、実行が停止されます。

Inquire:進行状況バーは表示されません。続行する許可が求められます。Y または A で応答した場合、進行状況バーが表示されます。

Continue (既定値):進行状況バーが表示され、継続して実行されます。

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

$PSEmailServer
--------------

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

$PSDefaultParameterValues
-------------------------

コマンドレットと高度な関数のパラメーターの既定値を指定します。$PSDefaultParameterValues の値は、コマンドレット名とパラメーター名をコロン (:) で区切って構成されたキーと、指定されたカスタム既定値である値が含まれたハッシュ テーブルです。

この変数は Windows PowerShell 3.0 で導入されました。

このユーザー設定変数の詳細については、「about_Parameters_Default_Values」を参照してください。

$PSModuleAutoloadingPreference
------------------------------

セッション内のモジュールの自動インポートを有効および無効にします。"All" は既定値です。この変数の値に関係なく、Import-Module コマンドレットを使用してモジュールをインポートすることができます。

有効な値は次のとおりです。

All モジュールは、最初に使用するときに自動的にインポートされます。モジュールをインポートするには、モジュール内のいずれかのコマンドを取得する (Get-Command) か使用します。

ModuleQualified

モジュール内のコマンドのモジュール修飾名が使用されている場合のみ、モジュールが自動的にインポートされます。たとえば、「MyModule\MyCommand」と入力すると、Windows PowerShell によって MyModule モジュールがインポートされます。

None セッション内でモジュールの自動インポートが無効になります。モジュールをインポートするには、Import-Module コマンドレットを使用します。

モジュールの自動インポートの詳細については、「about_Modules」(https://go.microsoft.com/fwlink/?LinkID=144311) を参照してください。

$PSSessionApplicationName
---------------------------

WS-Management テクノロジを使用するリモート コマンドの既定のアプリケーション名を指定します。

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

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

           http://Server01:8080/WSMAN

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

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

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

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

$PSSessionConfigurationName
---------------------------

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

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

$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
----------------

リモート セッションの高度なユーザー オプションの既定値を設定します。これらのオプションのユーザー設定によって、セッション オプションのシステムの既定値が上書きされます。

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

既定では、$PSSessionOption 変数には、次のように、PSSessionOption オブジェクトとすべてのオプションの既定値が格納されます。

            MaximumConnectionRedirectionCo For descriptions of these options, see the help topic for the unt : 5
            NoCompression                     : False
            NoMachineProfile                  : False
            ProxyAccessType                   : None
            ProxyAuthentication               : Negotiate
            ProxyCredential                   :
            SkipCACheck                       : False
            SkipCNCheck                       : False
            SkipRevocationCheck               : False
            OperationTimeout                  : 00:03:00
            NoEncryption                      : False
            UseUTF16                          : False
            IncludePortInSPN                  : False
            OutputBufferingMode               : None
            Culture                           :
            UICulture                         :
            MaximumReceivedDataSizePerCommand :
            MaximumReceivedObjectSize         : 209715200
            ApplicationArguments              :
            OpenTimeout                       : 00:03:00
            CancelTimeout                     : 00:01:00
            IdleTimeout                       : -00:00:00.0010000

これらのオプションの説明については、New-PSSessionOption コマンドレットのヘルプ トピックを参照してください。

$PSSessionOption ユーザー設定変数の値を変更するには、New-PSSessionOption コマンドレットを使用し、必要なオプションの値を指定して PSSessionOption オブジェクトと作成します。$PSSessionOption という名前の変数に出力が保存されます。

例:

            $PSSessionOption = New-PSSessionOption -NoCompression

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

特定のリモート セッションにカスタム オプションを設定することもできます。設定されたオプションは、システムの既定値および $PSSessionOption ユーザー設定変数の値よりも優先されます。

カスタム セッション オプションを設定するには、New-PSSessionOption コマンドレットを使用して PSSessionOption オブジェクトを作成します。次に、New-PSSession、Enter-PSSession、Invoke-Command などのセッションを作成するコマンドレットで SessionOption パラメーターの値として PSSessionOption オブジェクトを使用します。

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

$VerbosePreference
------------------

Windows PowerShell が、Write-Verbose コマンドレットで生成されるメッセージなど、スクリプト、コマンドレット、プロバイダーによって生成される詳細メッセージに応答する方法を決定します。通常、詳細メッセージでは、コマンドを実行するための操作が説明されています。

既定では、詳細メッセージは表示されませんが、$VerbosePreference の値を変更することでこの動作を変更できます。

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

有効な値:

Stop:詳細メッセージとエラー メッセージが表示され、実行が停止されます。

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

Continue:詳細メッセージが表示され、実行が続行されます。

SilentlyContinue (既定値):詳細メッセージは表示されません。実行が続行されます。

以下の例では、$VerbosePreference のさまざまな値の結果と、Verbose 共通パラメーターを使用してユーザー設定の値を上書きする方法を示しています。

次の例は、既定値である "SilentlyContinue" 値の結果を示しています。

        PS> $VerbosePreference             # Find the current value.
        SilentlyContinue

        PS> Write-Verbose "Verbose message test."              
        PS>                                # Write a verbose message.
                                           # Message is not displayed.

        PS> Write-Verbose "Verbose message test." -verbose     
        VERBOSE: Verbose message test.
                                   # Use the Verbose parameter.

次の例は、"Continue" 値の結果を示しています。

        PS> $VerbosePreference = "Continue"                    
                                           # Change the value to Continue.
        PS> Write-Verbose "Verbose message test."              
                                           # Write a verbose message.
        VERBOSE: Verbose message test.                         
                                           # Message is displayed.

        PS> Write-Verbose "Verbose message test." -verbose:$false
                                           # Use the Verbose parameter with
                                             a value of $false.
        PS>                                  
                                           # Message is not displayed.

次の例は、"Stop" 値の結果を示しています。

        PS> $VerbosePreference = "Stop"                        
                                           # Change the value to Stop.
        PS> Write-Verbose "Verbose message test."              
                                           # Write a verbose message.
        VERBOSE: Verbose message test.
        Write-Verbose : Command execution stopped because the shell variable "VerbosePreference"
        is set to Stop.
        At line:1 char:14
        + Write-Verbose  <<<< "Verbose message test."

       PS> Write-Verbose "Verbose message test." -verbose:$false
                                          # Use the Verbose parameter with
                                            a value of $false
       PS>                                  
                                          # Message is not displayed.

次の例は、"Inquire" 値の結果を示しています。

       PS> $VerbosePreference = "Inquire"                      
                                         # Change the value to Inquire.
       PS> Write-Verbose "Verbose message test."               
       VERBOSE: Verbose message test.
                                         # Write a verbose message.
       Confirm
       Continue with this operation?
       [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"): y
       PS>

       PS> Write-Verbose "Verbose message test." -verbose:$false
                                        # Use the Verbose parameter.
       PS>                              
                                        # Message is not displayed.

$WarningPreference
------------------

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

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

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

有効な値:

Stop:警告メッセージとエラー メッセージが表示され、実行が停止されます。

Inquire:警告メッセージが表示され、続行の許可を求めるプロンプトが表示されます。

Continue (既定値):警告メッセージが表示され、実行が続行されます。

SilentlyContinue:警告メッセージは表示されません。実行が続行されます。

以下の例では、$WarningPreference のさまざまな値の結果と、WarningAction 共通パラメーターを使用してユーザー設定の値を上書きする方法を示しています。

次の例は、既定値である "Continue" 値の結果を示しています。

            PS> $WarningPreference    # Find the current value.                           
            Continue                  

                                      # Write a warning message.
            PS> Write-Warning "This action can delete data."     
            WARNING: This action can delete data.
                                      
                                      # Use the WarningAction parameter to 
                                      # suppress the warning for this command                                             
            PS> Write-Warning "This action can delete data." -warningaction silentlycontinue     

次の例は、"SilentlyContinue" 値の結果を示しています。

            PS> $WarningPreference = "SilentlyContinue"           
                                      # Change the value to SilentlyContinue.
 
            PS> Write-Warning "This action can delete data."      
            PS>                        # Write a warning message.

       
            PS> Write-Warning "This action can delete data." -warningaction stop     
                                      # Use the WarningAction parameter to stop
                                      # processing when this command generates a
                                      # warning.         
            WARNING: This action can delete data.
            Write-Warning : Command execution stopped because the shell variable
            "WarningPreference" is set to Stop.
            At line:1 char:14
            + Write-Warning <<<<  "This action can delete data." -warningaction stop
                                 

次の例は、"Inquire" 値の結果を示しています。

           PS> $WarningPreference = "Inquire"                    
                                      # Change the value to Inquire.
           PS> Write-Warning "This action can delete data."   
                                      # Write a warning message.     
           WARNING: This action can delete data.

           Confirm
           Continue with this operation?
           [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"): y
           PS>

           PS> Write-Warning "This action can delete data." -warningaction silentlycontinue
           PS>                         # Use the WarningAction parameter to change the
                                       # response to a warning for the current command.

次の例は、"Stop" 値の結果を示しています。

           PS> $WarningPreference = "Stop"                       
                                     # Change the value to Stop.

           PS> Write-Warning "This action can delete data."      
                                     # Write a warning message.
           WARNING: This action can delete data.
           Write-Warning : Command execution stopped because the shell variable 
             "WarningPreference" is set to Stop.
           At line:1 char:14
           + Write-Warning  <<<< "This action can delete data."


           PS> Write-Warning "This action can delete data." -warningaction inquire
           WARNING: This action can delete data.

           Confirm
           Continue with this operation?
           [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):                        
                                       # Use the WarningAction parameter to change the
                                       # response to a warning for the current command.

$WhatIfPreference
------------------

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

有効な値:

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

1: WhatIf は、これをサポートするすべてのコマンドで自動的に有効になります。ユーザーは WhatIf コマンドと False の値を使用して手動で無効にすることができます (WhatIf: $false)。

詳細説明

コマンドレットで WhatIf がサポートされているとき、コマンドレットは、コマンドを実行せずに、コマンドの想定される結果を報告します。以下の例では、Windows PowerShell は、Remove-Item コマンドへの応答として test.txt ファイルを削除する代わりに、削除する対象を報告します。その後の Get-Childitem コマンドで、ファイルが削除されていないことを確認します。

              PS> remove-item test.txt
              What if: Performing operation "Remove-Item" on Target "Item: 
                C:\test.txt
              PS> get-childitem test.txt

              Directory: 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                         # Check the current value.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                       # Verify that the file exists.

             PS> remove-item test.txt                  
             PS>                       # Delete the file.

             PS> get-childitem test.txt | format-list -property FullName
                                       # Verify that the file is deleted.

             Get-ChildItem : Cannot find path 'C:\test.txt' because it does not exist.
             At line:1 char:14
             + get-childitem  <<<< test.txt | format-list fullname

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

             PS> get-childitem test2.txt | format-list -property FullName 
             FullName : C:\test2.txt
                                      # Verify that the file exists.

             PS> remove-item test2.txt -whatif         
             What if: Performing operation "Remove File" on Target "C:\test2.txt".
                                      # Use the WhatIf parameter

             PS> get-childitem test2.txt | format-list -property FullName
             FullName : C:\test2.txt
                                      # Verify that the file was not deleted

次の例は、1 (WhatIf が有効) の値の結果を示しています。Remove-Item を使用してコマンドレットを削除すると、Remove-Item によって削除されるファイルのパスが表示されますが、ファイルは削除されません。

             PS> $whatifpreference = 1                 
             PS> $whatifpreference
             1                        # Change the value.
                                      
             PS> remove-item test.txt                  
             What if: Performing operation "Remove File" on Target "C:\test.txt".
                                      # Try to delete a file.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                      # Verify that the file exists.

次の例は、$WhatIfPreference の値が 1 のときにファイルを削除する方法を示しています。これには、WhatIf パラメーターと $false の値が使用されます。

             PS> remove-item test.txt -whatif:$false
                                      # Use the WhatIf parameter with $false.

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

            PS> $whatifpreference = 1                  
                                     # Change the value to 1.
                                                      
            PS> get-process winword  
                                    # A Get-Process command completes.

            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: Performing operation "Stop-Process" on Target "WINWORD (2312)".
                                    # A Stop-Process command uses WhatIf.

           PS> stop-process -name winword  -whatif:$false
           PS>                      # WhatIf:$false overrides the preference.
           
           PS> get-process winword                     
           Get-Process : Cannot find a process with the name 'winword'. Verify the process name
            and call the cmdlet again.
           At line:1 char:12
           + get-process  <<<< winword
                                    # Verify that the process is stopped.

関連項目

about_Automatic_Variables

about_CommonParameters

about_Environment_Variables

about_Profiles

about_Remote about_Scopes