about_Preference_Variables

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

TÓPICO

Variáveis preferenciais

DESCRIÇÃO BREVE

Variáveis que personalizam o comportamento do Windows PowerShell

DESCRIÇÃO LONGA

O Windows PowerShell inclui um conjunto de variáveis que permitem personalizar seu comportamento. Essas "variáveis preferenciais" funcionam como as opções dos sistemas baseados em GUI.

As variáveis preferenciais afetam o ambiente operacional do Windows PowerShell e todos os comandos executados nele. Em muitos casos, os cmdlets têm parâmetros que podem ser usados para substituir o comportamento preferencial de um comando específico.

A tabela a seguir lista as variáveis preferenciais e seus valores padrão.

    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

O Windows PowerShell também inclui as seguintes variáveis de ambiente que armazenam as preferências do usuário. Para obter mais informações sobre essas variáveis de ambiente, consulte about_Environment_Variables.

    Variable                                         
    --------    
    PSExecutionPolicyPreference                     
    PSModulePath                        

COMO TRABALHAR COM VARIÁVEIS PREFERENCIAIS

Este documento descreve todas as variáveis preferenciais.

Para exibir o valor atual de uma variável preferencial específica, digite o nome da variável. Em resposta, o Windows PowerShell fornece o valor. Por exemplo, o comando a seguir exibe o valor da variável $ConfirmPreference.

        PS> $ConfirmPreference
        High

Para alterar o valor de uma variável, use uma instrução de atribuição. Por exemplo, a instrução a seguir atribui o valor "Medium" à variável $ConfirmPreference.

        PS> $ConfirmPreference = "Medium"

Assim como todas as variáveis, os valores que você configura são específicos para a sessão atual do Windows PowerShell. Para fazer com que eles entrem em vigor em todas as sessões do Windows PowerShell, adicione-os a seu perfil do Windows PowerShell. Para obter mais informações, consulte about_Profiles.

COMO TRABALHAR REMOTAMENTE

Quando você executa comandos em um computador remoto, os comandos remotos são sujeitos apenas às preferências configuradas no cliente do Windows PowerShell ou no computador remoto. Por exemplo, quando você executa um comando remoto, o valor da variável $DebugPreference no computador remoto determina como o Windows PowerShell responderá às mensagens de depuração.

Para obter mais informações sobre comandos remotos, consulte about_remote.

$ConfirmPreference
------------------

Determina se o Windows PowerShell pedirá sua confirmação automaticamente antes de executar um cmdlet ou função.

Quando o valor da variável $ConfirmPreference (High, Medium, Low) for menor ou igual ao risco atribuído ao cmdlet ou função (High, Medium, Low), o Windows PowerShell solicitará automaticamente sua confirmação antes de executar o cmdlet ou função.

Se o valor da variável $ConfirmPreference for None, o Windows PowerShell nunca avisará você automaticamente antes de executar um cmdlet ou função.

Para alterar o comportamento de confirmação de todos os cmdlets e funções da sessão, altere o valor da variável $ConfirmPreference.

Para substituir a $ConfirmPreference por um só comando, use o parâmetro Confirm do cmdlet ou da função. Para solicitar a confirmação, use -Confirm. Para suprimir a confirmação, use -Confirm:$false

Valores válidos da $ConfirmPreference:

None: o Windows PowerShell não apresenta um aviso automaticamente. Para solicitar a confirmação de um comando específico, use o parâmetro Confirm do cmdlet ou da função.

Low: o Windows PowerShell solicita a confirmação antes de executar os cmdlets ou as funções com baixo, médio ou alto risco.

Medium: o Windows PowerShell solicita a confirmação antes de executar os cmdlets ou as funções com médio ou alto risco.

High: o Windows PowerShell solicita a confirmação antes de executar os cmdlets ou as funções com alto risco.

EXPLICAÇÃO DETALHADA

Quando as ações de um cmdlet ou função afetarem o sistema significativamente, como as que excluem dados ou usam uma quantidade significativa de recursos do sistema, o Windows PowerShell pode solicitar automaticamente sua confirmação antes de executar a ação.

Por exemplo,

    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"):

A estimativa do risco é um atributo do cmdlet ou da função conhecido como seu "ConfirmImpact". Os usuários não podem alterá-la.

Os cmdlets e funções que podem representar um risco para o sistema têm um parâmetro Confirm que podem ser usados para solicitar ou suprimir a confirmação de um só comando.

Já que a maioria dos cmdlets e funções usam o valor de risco padrão (ConfirmImpact) Medium, e o valor padrão da $ConfirmPreference é High, a confirmação automática raramente ocorre. No entanto, você pode ativar a confirmação automática alterando o valor da $ConfirmPreference para Medium ou Low.

EXEMPLOS

Este exemplo mostra o efeito do valor padrão da $ConfirmPreference. O valor High somente confirma os cmdlets e funções de alto risco. Já que a maioria dos cmdlets e funções tem risco médio, eles não são confirmados automaticamente.

          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"):

O exemplo a seguir mostra o efeito da alteração do valor da $ConfirmPreference para Medium. Já que a maioria dos cmdlets e funções tem médio risco, eles são confirmados automaticamente. Para suprimir o prompt de confirmação de um só comando, use o parâmetro Confirm com um valor de $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
------------------

Determina como o Windows PowerShell responde às mensagens de depuração geradas por um script, cmdlet ou provedor, ou por um comando Write-Debug na linha de comando.

Alguns cmdlets exibem mensagens de depuração que, geralmente, são mensagens muito técnicas projetadas para programadores e profissionais de suporte técnico. Por padrão, as mensagens de depuração não são exibidas, mas você pode exibi-las alterando o valor da $DebugPreference.

Você também pode usar o parâmetro comum Debug de um cmdlet para exibir ou ocultar as mensagens de depuração de um comando específico. Para obter mais informações, digite: "get-help about_commonparameters".

Valores válidos:

Stop: exibe a mensagem de depuração e interrompe a execução. Grava um erro no console.

Inquire: exibe a mensagem de depuração e pergunta se você deseja continuar. Observe que a adição do parâmetro comum Debug a um comando -- quando o comando é configurado para gerar uma mensagem de depuração — altera o valor da variável $DebugPreference para Inquire.

Continue: exibe a mensagem de depuração e continua a execução.

SilentlyContinue: (padrão) não tem efeito. A mensagem de depuração não é exibida e a execução continua sem interrupção.

EXEMPLOS

Os exemplos a seguir mostram o efeito de alterar os valores da $DebugPreference quando um comando Write-Debug é inserido na linha de comando. A alteração afeta todas as mensagens de depuração, inclusive as geradas pelos cmdlets e scripts. Os exemplos também mostram o uso do parâmetro comum Debug, que exibe ou oculta as mensagens de depuração relacionadas a um só comando.

Este exemplo mostra o efeito do valor padrão, "SilentlyContinue". A mensagem de depuração não é exibida e o processamento continua. O comando final usa o parâmetro Debug para substituir a preferência de um único comando.

        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"):

Este exemplo mostra o efeito do valor "Continue". O comando final usa o parâmetro Debug com um valor de $false para suprimir a mensagem de um só comando.

        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.

Este exemplo mostra o efeito do valor "Stop". O comando final usa o parâmetro Debug com um valor de $false para suprimir a mensagem de um só comando.

        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.

Este exemplo mostra o efeito do valor "Inquire". O comando final usa o parâmetro Debug com um valor de $false para suprimir a mensagem de um só comando.

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

Determina como o Windows PowerShell responde a um erro de não finalização (um erro que não interrompe o processamento do cmdlet) na linha de comando ou em um script, cmdlet ou provedor, como os erros gerados pelo cmdlet Write-Error.

Você também pode usar o parâmetro comum ErrorAction de um cmdlet para substituir a preferência de um comando específico.

Valores válidos:

Stop: exibe a mensagem de erro e interrompe a execução.

Inquire: exibe a mensagem de erro e pergunta se você deseja continuar.

Continue (padrão): exibe a mensagem de erro e continua a execução.

Suspend: suspende automaticamente uma tarefa de fluxo de trabalho para permitir mais investigações. Após a investigação, o fluxo de trabalho poderá ser retomado.

SilentlyContinue: não tem efeito. A mensagem de erro não é exibida e a execução continua sem interrupção.

OBSERVAÇÃO:

O valor Ignore do parâmetro comum ErrorAction não é um valor válido da variável $ErrorActionPreference. O valor Ignore destina-se ao uso por comando, e não para uso como uma preferência salva.

Nem a $ErrorActionPreference nem o parâmetro comum ErrorAction afetam o modo como o Windows PowerShell responde a erros de finalização (aqueles que interrompem o processamento do cmdlet).

Para obter mais informações, consulte o parâmetro comum ErrorAction, consulte about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).

EXEMPLOS

Esses exemplos mostram o efeito dos diferentes valores de $ErrorActionPreference e o uso do parâmetro comum ErrorAction para substituir a preferência de um só comando. O parâmetro ErrorAction tem os mesmos valores válidos da variável $ErrorActionPreference.

Este exemplo mostra o efeito do valor Continue, que é o padrão.

        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.

Este exemplo mostra o efeito do valor 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.

Este exemplo mostra o efeito de um erro real. Nesse caso, o comando obtém um arquivo inexistente, nofile.txt. O exemplo também usa o parâmetro comum ErrorAction para substituir a preferência.

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

Determina o formato de exibição das mensagens de erro no Windows PowerShell.

Valores válidos

NormalView (padrão): uma exibição detalhada desenvolvida para a maioria dos usuários. Consiste em uma descrição do erro, no nome do objeto envolvido no erro e nas setas (<<<<) que apontam para as palavras do comando que causaram o erro.

CategoryView: uma exibição sucinta e estruturada projetada para ambientes de produção. O formato é: {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

Para obter mais informações sobre os campos de CategoryView, consulte "ErrorCategoryInfo class" no SDK do Windows PowerShell.

EXEMPLOS

Esses exemplos mostram o efeito dos valores ErrorView.

Este exemplo mostra como um erro é exibido quando o valor de $ErrorView é NormalView. Nesse caso, o comando Get-ChildItem é usado para localizar um arquivo inexistente.

        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

Este exemplo mostra como o mesmo erro aparece quando o valor de $ErrorView é CategoryView.

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

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

Este exemplo demonstra que o valor de ErrorView só afeta a exibição de erro; ele não altera a estrutura do objeto de erro que é armazenado na variável automática $error. Para obter informações sobre a variável automática $error, consulte about_automatic_variables.

Este comando usa o objeto ErrorRecord associado ao erro mais recente da matriz de erros (elemento 0) e formata todas as propriedades do objeto de erro em uma lista.

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

Determina quantos itens enumerados são incluídos em uma exibição. Essa variável não afeta os objetos subjacentes; apenas a exibição. Quando o valor de $FormatEnumerationLimit for menor que o número de itens enumerados, o Windows PowerShell adiciona um sinal de reticências (...) para indicar itens não exibidos.

        Valid values: Integers (Int32)
        Default value: 4

EXEMPLOS

Este exemplo mostra como usar a variável $FormatEnumerationLimit para melhorar a exibição de itens enumerados.

O comando deste exemplo gera uma tabela que lista todos os serviços em execução no computador em dois grupos; um para serviços em execução de serviços e um para serviços interrompidos. Ele usa um comando Get-Service para obter todos os serviços e, em seguida, enviar os resultados pelo pipeline para o cmdlet Group-Object, que agrupa os resultados pelo status do serviço.

A exibição resultante é uma tabela que lista o status na coluna Name e os processos com esse status na coluna Group. (Para alterar os rótulos das coluna, use uma tabela de hash. Para obter mais informações, consulte os exemplos em "get-help format-table -examples".)

Há um máximo de 4 serviços listados na coluna Group para cada status. Para aumentar o número de itens listados, aumente o valor de $FormatEnumerationLimit para 1000.

Na exibição resultante, a lista da coluna Group será limitada pelo comprimento da linha. No comando final do exemplo, use o parâmetro Wrap de Format-Table para exibir todos os processos em cada grupo de Status.

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

As variáveis preferências Log*Event determinam quais tipos de eventos são gravados no log de eventos do Windows PowerShell no Visualizador de Eventos. Por padrão, apenas os eventos de mecanismo e provedor são registrados, mas você pode usar as variáveis preferenciais Log*Event para personalizar seu log, como o log de eventos sobre comandos.

As variáveis preferenciais Log*Event são as seguintes:

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

Para habilitar um Log*Event, digite a variável com um valor de $true, por exemplo:

            $LogCommandLifeCycleEvent

            - or -

            $LogCommandLifeCycleEvent = $true

Para desabilitar um tipo de evento, digite a variável com um valor de $false, por exemplo:

            $LogCommandLifeCycleEvent = $false

Os eventos que você habilitar só entram em vigor no console atual do Windows PowerShell. Para aplicar a configuração a todos os consoles, salve as configurações de variável em seu perfil do Windows PowerShell.

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

Determina quantos aliases são permitidos em uma sessão do Windows PowerShell. O valor padrão, 4096, deve ser suficiente para a maioria dos usos, mas você pode ajustá-lo para atender às suas necessidades.

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

(get-alias).count

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

Determina quantas unidades do Windows PowerShell são permitidas em uma determinada sessão. Isso inclui as unidades de sistema de arquivos e os armazenamentos de dados que são expostos pelos provedores do Windows PowerShell e que aparecem como as unidades Alias: e HKLM:.

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

(get-psdrive).count

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

Determina quantos erros são salvos no histórico de erro da sessão.

        Valid values: 256 - 32768 (Int32)
        Default: 256

Os objetos que representam cada erro retido são armazenados na variável automática $Error. Essa variável contém uma matriz de objetos de registro de erro, um para cada erro. O erro mais recente é o primeiro objeto da matriz ($Error[0]).

Para contar os erros em seu sistema, use a propriedade Count da matriz $Error. Digite:

$Error.count

Para exibir um erro específico, use a notação de matriz para exibir o erro. Por exemplo, para ver o erro mais recente, digite:

                $Error[0]

Para exibir o erro retido mais antigo, digite:

                $Error[($Error.Count -1]

Para exibir as propriedades do objeto ErrorRecord, digite:

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

Neste comando, o parâmetro Force substitui a formatação especial dos objetos ErrorRecord e os reverte para o formato convencional.

Para excluir todos os erros do histórico de erros, use o método Clear da matriz de erros.

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

Para localizar todas as propriedades e métodos de uma matriz de erro, use o cmdlet Get-Member com seu parâmetro InputObject. Quando você redireciona uma coleção de objetos para Get-Member, Get-Member exibe as propriedades e métodos os objetos da coleção. Quando você usa o parâmetro InputObject de Get-Member, Get-Member exibe as propriedades e métodos da coleção.

$MaximumFunctionCount
------------------

Determina quantas funções são permitidas em uma determinada sessão.

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

Para ver as funções de sua sessão, use a unidade Function: do Windows PowerShell que é exposta pelo provedor de Function do Windows PowerShell. (Para obter mais informações sobre o provedor de Function, digite "get-help function").

Para listar as funções da sessão atual, digite:

            get-childitem function:

Para contar as funções da sessão atual, digite:

            (get-childitem function:).count

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

Determina quantos comandos são salvos no histórico de comandos da sessão atual.

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

Para determinar o número de comandos atuais salvos no histórico de comandos, digite:

            (get-history).count

Para ver o comando salvo em seu histórico de sessões, use o cmdlet Get-History. Para obter mais informações, consulte about_History (https://go.microsoft.com/fwlink/?LinkID=113233).

OBSERVAÇÃO: No Windows PowerShell 2.0, o valor padrão da variável $MaximumHistoryCount é 64.

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

Determina quantas variáveis são permitidas em uma determinada sessão, incluindo as variáveis automáticas, variáveis preferenciais e as variáveis que você cria em comandos e scripts.

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

Para ver as variáveis de sua sessão, use o cmdlet Get-Variable e os recursos da unidade Variable: do Windows PowerShell e do provedor de Variable do Windows PowerShell. Para obter mais informações sobre o provedor de Variable, digite "get-help variable".

Para localizar o número atual de variáveis do sistema, digite:

            (get-variable).count

$OFS
----

Separador de campos de saída. Especifica o caractere que separa os elementos de uma matriz quando a matriz é convertida em uma cadeia de caracteres.

        Valid values: Any string.
        Default: Space

Por padrão, a variável $OFS não existe e o separador de arquivos de saída é um espaço, mas você pode adicionar essa variável e configurá-la como qualquer cadeia de caracteres.

EXEMPLOS

Este exemplo mostra que um espaço é usado para separar os valores quando uma matriz é convertida em uma cadeia de caracteres. Nesse caso, uma matriz de números inteiros é armazenada em uma variável e, em seguida, a variável será convertida em uma cadeia de caracteres.

       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

Para alterar o separador, adicione a variável $OFS atribuindo um valor a ela. Para funcionar corretamente, a variável deve ser nomeada como $OFS.

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

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

Para restaurar o comportamento padrão, você pode atribuir um espaço (" ") para o valor de $OFS ou excluir a variável. Este comando exclui a variável e, em seguida, verifica se o separador é um espaço.

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

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

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

Determina o método de codificação de caracteres que o Windows PowerShell usa ao enviar texto para outros aplicativos.

Por exemplo, se um aplicativo retornar cadeias de caracteres Unicode para o Windows PowerShell, talvez seja necessário alterar o valor para UnicodeEncoding para enviar os caracteres corretamente.

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

        Default: ASCIIEncoding object (System.Text.ASCIIEncoding)

EXEMPLOS

Este exemplo mostra como fazer com que o comando FINDSTR do Windows funcione no Windows PowerShell em um computador que esteja localizado para um idioma que usa caracteres Unicode, como o chinês. O primeiro comando localiza o valor de $OutputEncoding. Já que o valor é um objeto de codificação, ele exibirá apenas a propriedade EncodingName.

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

Neste exemplo, um comando FINDSTR é usado para procurar dois caracteres chineses que estão presentes no arquivo Test.txt. Quando esse comando FINDSTR é executado no prompt de comando de Windows (Cmd.exe), o FINDSTR localiza os caracteres no arquivo de texto. No entanto, quando você executa o mesmo comando FINDSTR no Windows PowerShell, os caracteres não são encontrados porque o Windows PowerShell os envia ao FINDSTR em texto ASCII, e não em texto Unicode.

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

Para fazer com que o comando funcione no Windows PowerShell, configure o valor de $OutputEncoding como o valor da propriedade OutputEncoding do console, que é baseado na localidade selecionada para o Windows. Já que o OutputEncoding é uma propriedade estática do console, use dois-pontos (::) no comando.

          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.

Como resultado dessa alteração, o comando FINDSTR localiza os caracteres.

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

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

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

Determina como o Windows PowerShell responde às atualizações de andamento geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que indicam o status de um comando.

Valores válidos:

Stop: não exibe a barra de progresso. Em vez disso, ele exibe uma mensagem de erro e interrompe a execução.

Inquire: não exibe a barra de progresso. Solicita permissão para continuar. Se você responder com Y ou A, ele exibe a barra de progresso.

Continue (padrão): exibe a barra de progresso e continua a execução.

SilentlyContinue: executa o comando, mas não exibe a barra de progresso.

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

Especifica o servidor de email padrão que é usado para enviar mensagens de email. Essa variável preferencial é usada pelos cmdlets que enviam emails, como o cmdlet Send-MailMessage.

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

Especifica valores padrão para os parâmetros dos cmdlets e funções avançadas. O valor de $PSDefaultParameterValues é uma tabela de hash na qual a chave consiste no nome do cmdlet e no nome do parâmetro separados por dois-pontos (:) e o valor é um valor padrão personalizado especificado por você.

Essa variável foi introduzida no Windows PowerShell 3.0

Para obter mais informações sobre essa variável preferencial, consulte about_Parameters_Default_Values.

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

Habilita e desabilita a importação automática dos módulos na sessão. "All" é o padrão. Independentemente do valor dessa variável, você pode usar o cmdlet Import-Module para importar um módulo.

Os valores válidos são:

Todos Os módulos são importados automaticamente no primeiro uso. Para importar um módulo, obtenha (Get-Command) ou use qualquer comando do módulo.

ModuleQualified

Os módulos somente são importados automaticamente quando um usuário utiliza o nome qualificado de módulo de um comando no módulo. Por exemplo, se o usuário digitar "MyModule\MyCommand", o Windows PowerShell importa o módulo MyModule.

None A importação automática dos módulos é desabilitada na sessão. Para importar um módulo, use o cmdlet Import-Module.

Para obter mais informações sobre a importação automática dos módulos, consulte about_Modules (https://go.microsoft.com/fwlink/?LinkID=144311).

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

Especifica o nome do aplicativo padrão para um comando remoto que usa a tecnologia WS-Management.

O nome do aplicativo padrão do sistema é WSMAN, mas você pode usar essa variável preferencial para alterar o padrão.

O nome do aplicativo é o último nó de um URI de conexão. Por exemplo, o nome do aplicativo no seguinte exemplo de URI é WSMAN.

           http://Server01:8080/WSMAN

O nome do aplicativo padrão é usado quando o comando remoto não especifica um URI de conexão ou um nome de aplicativo.

O serviço WinRM usa o nome do aplicativo para selecionar um ouvinte para atender à solicitação de conexão. O valor desse parâmetro deve corresponder ao valor da propriedade URLPrefix de um ouvinte no computador remoto.

Para substituir o padrão do sistema e o valor dessa variável, e selecionar um nome de aplicativo diferente para uma sessão específica, use os parâmetros ConnectionURI ou ApplicationName dos cmdlets New-PSSession, Enter-PSSession ou Invoke-Command.

Essa variável preferencial é configurada no computador local, mas especifica um ouvinte no computador remoto. Se o nome do aplicativo que você especificar não existir no computador remoto, o comando para estabelecer a sessão falhará.

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

Especifica a configuração de sessão padrão que é usada para PSSessions criadas na sessão atual.

Essa variável preferencial é configurada no computador local, mas especifica uma configuração de sessão localizada no computador remoto.

O valor da variável $PSSessionConfigurationName é um URI de recurso totalmente qualificado.

O valor padrão:

         https://schemas.microsoft.com/PowerShell/microsoft.PowerShell 

indica a configuração de sessão Microsoft.PowerShell no computador remoto.

Se você especificar somente um nome de configuração, o URI de esquema a seguir será anexado:

           https://schemas.microsoft.com/PowerShell/

Você pode substituir o padrão e selecionar uma configuração de sessão diferente para uma sessão específica usando o parâmetro ConfigurationName dos cmdlets New-PSSession, Enter-PSSession ou Invoke-Command.

Você pode alterar o valor dessa variável a qualquer momento. Quando fizer isso, lembre-se de que a configuração da sessão que você selecionar deve existir no computador remoto. Se ela não existir, o comando para criar uma sessão que usa a configuração de sessão falhará.

Essa variável preferencial não determina quais configurações de sessão local são usadas quando os usuários remotos criam uma sessão que se conecta a esse computador. No entanto, você pode usar as permissões das configurações de sessão local para determinar quais usuários podem usá-las.

$PSSessionOption
----------------

Estabelece os valores padrão para opções avançadas de usuário em uma sessão remota. Essas preferências de opção substituem os valores padrão do sistema para opções de sessão.

A variável $PSSessionOption contém um objeto de PSSessionOption (System.Management.Automation.Remoting.PSSessionObject). Cada propriedade do objeto representa uma opção de sessão. Por exemplo, a propriedade NoCompression desabilita a compactação de dados durante a sessão.

Por padrão, a variável $PSSessionOption contém um objeto PSSessionOption com os valores padrão para todas as opções, conforme exibido a seguir.

            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

Para obter descrições dessas opções, consulte o tópico de ajuda para o cmdlet New-PSSessionOption.

Para alterar o valor da variável preferencial $PSSessionOption, use o cmdlet New-PSSessionOption para criar um objeto PSSessionOption com os valores de opção que preferir. Salve a saída em uma variável chamada $PSSessionOption.

Por exemplo,

            $PSSessionOption = New-PSSessionOption -NoCompression

Para usar a variável preferencial $PSSessionOption em cada sessão do Windows PowerShell, adicione um comando New-PSSessionOption que cria a variável $PSSessionOption para seu perfil do Windows PowerShell.

Você também pode configurar opções personalizadas para uma determinada sessão remota. As opções que você configurar têm precedência sobre os padrões do sistema e o valor da variável preferencial $PSSessionOption.

Para configurar opções de sessão personalizadas, use o cmdlet New-PSSessionOption para criar um objeto PSSessionOption. Em seguida, use o objeto PSSessionOption como o valor do parâmetro SessionOption nos cmdlets que criam uma sessão, como Invoke-Command, Enter-PSSession e New-PSSession.

Para obter mais informações sobre o cmdlet New-PSSessionOption, consulte o tópico da ajuda para New-PSSessionOption. Para obter mais informações sobre sessões e comandos remotos, consulte about_Remote e about_PSSessions. Para obter mais informações sobre como usar um perfil, consulte about_Profiles.

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

Determina como o Windows PowerShell responde às mensagens detalhadas geradas por um script, cmdlet ou provedor, como as mensagens geradas pelo cmdlet Write-Verbose. Normalmente, as mensagens detalhadas descrevem as ações realizadas para executar um comando.

Por padrão, as mensagens detalhadas não são exibidas, mas você pode alterar esse comportamento alterando o valor de $VerbosePreference.

Você também pode usar o parâmetro comum Verbose de um cmdlet para exibir ou ocultar as mensagens detalhadas de um comando específico. Para obter mais informações, digite: "get-help about_commonparameters".

Valores válidos:

Stop: exibe a mensagem detalhada e uma mensagem de erro e, em seguida, interrompe a execução.

Inquire: exibe a mensagem detalhada e, em seguida, exibe um prompt que pergunta se você deseja continuar.

Continue: exibe a mensagem detalhada e, em seguida, continua a execução.

SilentlyContinue (padrão): não exibe a mensagem detalhada. Continua a execução.

EXEMPLOS

Esses exemplos mostram o efeito dos diferentes valores de $VerbosePreference e o uso do parâmetro comum Verbose para substituir o valor preferencial.

Este exemplo mostra o efeito do valor SilentlyContinue, que é o padrão.

        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.

Este exemplo mostra o efeito do valor 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.

Este exemplo mostra o efeito do valor 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.

Este exemplo mostra o efeito do valor 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
------------------

Determina como o Windows PowerShell responde às mensagens de aviso geradas por um script, cmdlet ou provedor, como as mensagens geradas pelo cmdlet Write-Warning.

Por padrão, as mensagens de aviso são exibidas e a execução continua, mas você pode alterar esse comportamento alterando o valor de $WarningPreference.

Você também pode usar o parâmetro comum WarningAction de um cmdlet para determinar como o Windows PowerShell responde a avisos de um determinado comando. Para obter mais informações, digite: "get-help about_commonparameters".

Valores válidos:

Stop: exibe a mensagem de aviso e uma mensagem de erro e, em seguida, interrompe a execução.

Inquire: exibe a mensagem de aviso e solicita permissão para continuar.

Continue (padrão): exibe a mensagem de aviso e, em seguida, continua a execução.

SilentlyContinue: não exibe a mensagem de aviso. Continua a execução.

EXEMPLOS

Esses exemplos mostram o efeito dos diferentes valores de $WarningPreference e o uso do parâmetro comum WarningAction para substituir o valor preferencial.

Este exemplo mostra o efeito do valor Continue, que é o padrão.

            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     

Este exemplo mostra o efeito do valor 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
                                 

Este exemplo mostra o efeito do valor 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.

Este exemplo mostra o efeito do valor 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
------------------

Determina se o parâmetro WhatIf é habilitado automaticamente para cada comando que dá suporte a ele. Quando o WhatIf é habilitado, o cmdlet informa o efeito esperado do comando, mas não o executa.

Valores válidos:

0 (padrão): WhatIf não é habilitado automaticamente. Para habilitá-lo manualmente, use o parâmetro WhatIf do comando.

1: WhatIf é habilitado automaticamente em qualquer comando que dá suporte a ele. Os usuários podem usar o comando WhatIf com um valor False para desabilitá-lo manualmente (WhatIf:$false).

EXPLICAÇÃO DETALHADA

Quando um cmdlet dá suporte a WhatIf, o cmdlet informa o efeito esperado do comando, em vez de executá-lo. Por exemplo, em vez de excluir o arquivo test.txt em resposta a um comando Remove-Item, o Windows PowerShell informa o que ele excluiria. Um comando Get-Childitem subsequente confirma que o arquivo não foi excluído.

              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

EXEMPLOS

Esses exemplos mostram o efeito dos diferentes valores de $WhatIfPreference. Eles também mostram como usar o parâmetro de cmdlet WhatIf para substituir o valor preferencial de um comando específico.

Este exemplo mostra o efeito do valor 0 (não habilitado), que é o padrão.

             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

Este exemplo mostra o efeito de usar o parâmetro WhatIf quando o valor de $WhatIfPreference é 0.

             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

Este exemplo mostra o efeito do valor 1 (WhatIf habilitado). Quando você usar Remove-Item para excluir um cmdlet, p Remove-Item exibe o caminho para o arquivo que seria excluído, mas não exclui o arquivo.

             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.

Este exemplo mostra como excluir um arquivo quando o valor de $WhatIfPreference é 1. Ele usa o parâmetro WhatIf com um valor de $false.

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

Este exemplo demonstra que alguns cmdlets dão suporte ao comportamento de WhatIf, enquanto outros não. Neste exemplo, no qual o valor de $WhatIfPreference é 1 (habilitado), um comando Get-Process, que não dá suporte a WhatIf, é executado, mas um comando Stop-Process executa o comportamento WhatIf. Você pode substituir o comportamento de WhatIf do comando Stop-Process usando o parâmetro WhatIf com um valor de $false.

            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.

CONSULTE TAMBÉM

about_Automatic_Variables

about_CommonParameters

about_Environment_Variables

about_Profiles

about_Remote about_Scopes