about_Preference_Variables

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

TEMA

Variables de preferencia

DESCRIPCIÓN BREVE

Variables que personalizan el comportamiento de Windows PowerShell

DESCRIPCIÓN LARGA

Windows PowerShell incluye un conjunto de variables que permiten personalizar su comportamiento. Estas "variables de preferencia" funcionan como las opciones de sistemas basados en GUI.

Las variables de preferencia afectan al entorno operativo de Windows PowerShell y a todos los comandos que se ejecutan en el entorno. En muchos casos, los cmdlets tienen parámetros que puede utilizar para reemplazar el comportamiento de preferencia de un comando específico.

En la tabla siguiente se enumeran las variables de preferencia y sus valores predeterminados.

    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 también incluye las variables de entorno siguientes que almacenan preferencias del usuario. Para más información sobre estas variable de entorno, consulte about_Environment_Variables.

    Variable                                         
    --------    
    PSExecutionPolicyPreference                     
    PSModulePath                        

TRABAJO CON VARIABLES DE PREFERENCIA

En este documento se describen cada una de las variables de preferencia.

Para mostrar el valor actual de una variable de preferencia concreta, escriba el nombre de la variable. Como respuesta, Windows PowerShell proporciona el valor. Por ejemplo, el comando siguiente muestra el valor de la variable $ConfirmPreference.

        PS> $ConfirmPreference
        High

Para cambiar el valor de una variable, utilice una instrucción de asignación. Por ejemplo, la instrucción siguiente asigna el valor "Medium" a la variable $ConfirmPreference.

        PS> $ConfirmPreference = "Medium"

Como con todas las variables, los valores que establezca son específicos de la sesión de Windows PowerShell actual. Para que sean efectivos en todas las sesiones de Windows PowerShell, agréguelas a su perfil de Windows PowerShell. Para obtener más información, consulte about_Profiles.

TRABAJO DE FORMA REMOTA

Al ejecutar comandos en un equipo remoto, los comandos remotos solo están sujetos a las preferencias establecidas en el cliente de Windows PowerShell del equipo remoto. Por ejemplo, cuando se ejecuta un comando remoto, el valor de la variable $DebugPreference en el equipo remoto determina cómo responde Windows PowerShell a mensajes de depuración.

Para más información sobre comandos remotos, consulte about_remote.

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

Determina si Windows PowerShell pide confirmación automáticamente antes de ejecutar un cmdlet o una función.

Si el valor de la variable $ConfirmPreference (High [alto], Medium [medio], Low [bajo]) es menor o igual que el riesgo que asigna a la función o el cmdlet (High [alto], Medium [medio], Low [bajo]), Windows PowerShell pide confirmación automáticamente antes de ejecutar el cmdlet o la función.

Si el valor de la variable $ConfirmPreference es None, Windows PowerShell nunca pedirá confirmación automáticamente antes de ejecutar un cmdlet o una función.

Para cambiar el comportamiento de confirmación de todos los cmdlets y funciones de la sesión, cambie el valor de la variable $ConfirmPreference.

Para reemplazar $ConfirmPreference de un único comando, use el parámetro Confirm de la función o el cmdlet. Para solicitar confirmación, utilice -Confirm. Para suprimir la confirmación, utilice -Confirm:$false

Valores válidos de $ConfirmPreference:

None: Windows PowerShell no pide confirmación automáticamente. Para solicitar confirmación de un comando concreto, utilice el parámetro Confirm de la función o el cmdlet.

Low (bajo): Windows PowerShell pide confirmación antes de ejecutar cmdlets o funciones con un riesgo bajo, medio o alto.

Medio: Windows PowerShell pide confirmación antes de ejecutar cmdlets o funciones con un riesgo medio o alto.

Alto: Windows PowerShell pide confirmación antes de ejecutar cmdlets o funciones con un riesgo alto.

EXPLICACIÓN DETALLADA

Si las acciones de un cmdlet o una función afectan significativamente al sistema, como las que eliminan datos o utilizan una cantidad significativa de recursos del sistema, Windows PowerShell puede pedir confirmación automáticamente antes de realizar la acción.

Por ejemplo,

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

La estimación del riesgo es un atributo del cmdlet o la función que se conoce como su "ConfirmImpact". Los usuarios no pueden cambiarlo.

Los cmdlets y funciones que pueden suponer un riesgo para el sistema tienen un parámetro Confirm que puede usar para solicitar o suprimir la confirmación de un solo comando.

Como la mayoría de cmdlets y funciones usan un valor predeterminado Medium de riesgo (ConfirmImpact) y el valor predeterminado de $ConfirmPreference es High, es muy poco común que se produzca la confirmación automática. Sin embargo, puede activar la confirmación automática si cambia el valor de $ConfirmPreference a Medium o Low.

EJEMPLOS

En este ejemplo se muestra el efecto del valor predeterminado de $ConfirmPreference. El valor High solo confirma los cmdlets y funciones de alto riesgo. Dado que la mayoría de los cmdlets y funciones son de riesgo medio, no se confirman automáticamente.

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

En el ejemplo siguiente se muestra el efecto de cambiar el valor de $ConfirmPreference a Medium. Dado que la mayoría de los cmdlets y función son riesgo medio, se confirman automáticamente. Para suprimir la petición de confirmación de un único comando, utilice el parámetro Confirm con un 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 cómo responde Windows PowerShell a los mensajes de depuración que genera un script, un cmdlet o un proveedor, o un comando Write-Debug en la línea de comandos.

Algunos cmdlets muestran mensajes de depuración, que suelen ser mensajes muy técnicos diseñados para programadores y profesionales de soporte técnico. De forma predeterminada, los mensajes de depuración no se muestran, pero puede mostrarlos si cambia el valor de $DebugPreference.

También puede utilizar el parámetro común Debug de un cmdlet para mostrar u ocultar los mensajes de depuración de un comando específico. Para más información, escriba: "get-help about_commonparameters".

Valores válidos:

Stop: muestra el mensaje de depuración y detiene la ejecución. Escribe un error en la consola.

Inquire: muestra el mensaje de depuración y le pregunta si desea continuar. Tenga en cuenta que si agrega el parámetro común Debug a un comando (si el cuando el comando está configurado para generar un mensaje de depuración), el valor de la variable $DebugPreference cambia a Inquire.

Continue: muestra el mensaje de depuración y continúa con la ejecución.

SilentlyContinue: (Valor predeterminado) sin efecto. El mensaje de depuración no se muestra y la ejecución continúa sin interrupción.

EJEMPLOS

En los ejemplos siguientes se muestra el efecto de cambiar los valores de $DebugPreference cuando se escribe un comando Write-Debug en la línea de comandos. El cambio afecta a todos los mensajes de depuración, incluidos los generados por scripts y cmdlets. En los ejemplos también se muestra el uso del parámetro común Debug, que muestra u oculta los mensajes de depuración relacionados con un único comando.

En este ejemplo se muestra el efecto del valor predeterminado, "SilentlyContinue". No se muestra el mensaje de depuración y el procesamiento continúa. El último comando utiliza el parámetro Debug para reemplazar la preferencia de un ú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"):

En este ejemplo se muestra el efecto del valor "Continue". El último comando utiliza el parámetro Debug con un valor de $false para suprimir el mensaje en un único 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.

En este ejemplo se muestra el efecto del valor "Stop". El último comando utiliza el parámetro Debug con un valor de $false para suprimir el mensaje en un único 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.

En este ejemplo se muestra el efecto del valor "Inquire". El último comando utiliza el parámetro Debug con un valor de $false para suprimir el mensaje en un único 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 cómo responde Windows PowerShell a un error de no terminación (es decir, un error que no se detiene el procesamiento del cmdlet) en la línea de comandos o en un script, un cmdlet o un proveedor, como los errores generados por el cmdlet Write-Error.

También puede utilizar el parámetro común ErrorAction de un cmdlet para reemplazar la preferencia de un comando específico.

Valores válidos:

Stop: muestra el mensaje de error y detiene la ejecución.

Inquire: muestra el mensaje de error y le pregunta si desea continuar.

Continue (valor predeterminado): muestra el mensaje de error y continúa la ejecución.

Suspend: Suspende automáticamente una tarea de de flujo de trabajo para permitir una investigación más detallada. Después de la investigación es posible reanudar el flujo de trabajo.

SilentlyContinue: Sin efecto. El mensaje de error no se muestra y la ejecución continúa sin interrupción.

NOTA:

El valor Ignore del parámetro común ErrorAction no es un valor válido de la variable $ErrorActionPreference. El valor Ignore está pensado para su uso por comando, no como preferencia guardada.

Ni $ErrorActionPreference ni el parámetro común ErrorAction afectan a la forma en que Windows PowerShell responde a los errores de terminación (los que detienen el procesamiento de cmdlets).

Para más información sobre el parámetro común ErrorAction, consulte about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).

EJEMPLOS

En estos ejemplos se muestra el efecto de los distintos valores de $ErrorActionPreference y el uso del parámetro común ErrorAction para reemplazar la preferencia de un único comando. El parámetro ErrorAction tiene los mismos valores válidos que la variable $ErrorActionPreference.

En este ejemplo se muestra el efecto del valor Continue, que es el valor predeterminado.

        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.

En este ejemplo se muestra el efecto del 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.

En este ejemplo se muestra el efecto de un error real. En este caso, el comando obtiene un archivo de comandos inexistente, nofile.txt. En el ejemplo también se utiliza el parámetro común ErrorAction para reemplazar la preferencia.

        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 el formato de visualización de los mensajes de error de Windows PowerShell.

Valores válidos

NormalView (valor predeterminado): una vista detallada diseñada para la mayoría de los usuarios. Consta de una descripción del error, el nombre del objeto implicado en el error y flechas (<<<<) que señalan las palabras del comando que produjeron el error.

CategoryView: Una vista concisa y estructurada diseñada para entornos de producción. El formato es: {Categoría}: ({NombreDestino}:{TipoDestino}):[{Actividad}], {Motivo}

Para más información sobre los campos de CategoryView, consulte "Clase ErrorCategoryInfo" en el SDK de Windows PowerShell.

EJEMPLOS

En estos ejemplos se muestra el efecto de los valores de ErrorView.

En este ejemplo se muestra cómo aparece un error cuando el valor de $ErrorView es NormalView. En este caso, se utiliza el comando Get-ChildItem para buscar un archivo 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

En este ejemplo se muestra que el mismo error aparece cuando el valor de $ErrorView es CategoryView.

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

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

En este ejemplo se muestra que el valor de ErrorView solo afecta a la visualización de los errores; no cambia la estructura del objeto de error que se almacena en la variable automática $error. Para obtener información sobre la variable automática $error, consulte about_automatic_variables.

Este comando toma el objeto ErrorRecord asociado al error más reciente de la matriz de errores (elemento 0) y da formato a todas las propiedades del objeto de error en una 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 cuántos elementos enumerados se incluyen en una visualización. Esta variable no afecta a los objetos subyacentes; sólo a la visualización. Cuando el valor de $FormatEnumerationLimit es menor que el número de elementos enumerados, Windows PowerShell agrega puntos suspensivos (...) para indicar que hay elementos que no se muestran.

        Valid values: Integers (Int32)
        Default value: 4

EJEMPLOS

En este ejemplo se muestra cómo utilizar la variable $FormatEnumerationLimit para mejorar la visualización de los elementos enumerados.

El comando de este ejemplo genera una tabla que enumera todos los servicios se ejecutan en el equipo en dos grupos; uno para ejecutar servicios y otro para los servicios detenidos. Utiliza un comando Get-Service para obtener todos los servicios y después envía los resultados a través de la canalización al cmdlet Group-Object, que agrupa los resultados según el estado del servicio.

La visualización resultante es una tabla que muestra el estado en la columna Name y los procesos con ese estado en la columna Group. (Para cambiar las etiquetas de columna, utilice una tabla hash. Para más información, vea los ejemplos de "get-help format-table -examples").

Hay un máximo de 4 servicios que se muestran en la columna Group de cada estado. Para aumentar el número de elementos que aparecen, aumente el valor de $FormatEnumerationLimit a 1000.

En la visualización resultante, la lista en la columna Group ahora está limitada por la longitud de línea. En el comando final del ejemplo, use el parámetro Wrap de Format-Table para mostrar todos los procesos de cada grupo 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
----------

Las variables de preferencia Log*Event determinan los tipos de eventos que se escriben en el registro de eventos de Windows PowerShell del Visor de eventos. De forma predeterminada, solo se registran los eventos de motor y de proveedor, pero puede utilizar las variables de preferencia Log*Event para personalizar su registro, como el registro de eventos sobre comandos.

Las variables de preferencia de Log*Event son las siguientes:

            $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 un elemento Log*Event, escriba la variable con un valor de $true, por ejemplo:

            $LogCommandLifeCycleEvent

            - or -

            $LogCommandLifeCycleEvent = $true

Para deshabilitar un tipo de evento, especifique la variable con un valor de $false, por ejemplo:

            $LogCommandLifeCycleEvent = $false

Los eventos que se habilitan solo son efectivos para la consola de Windows PowerShell actual. Para aplicar la configuración a todas las consolas, guarde la configuración de variables en su perfil de Windows PowerShell.

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

Determina cuántos alias se permiten en una sesión de Windows PowerShell. El valor predeterminado, 4096, debería ser suficiente para la mayoría de usuarios, pero puede ajustarlo para cubrir sus necesidades.

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

(get-alias).count

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

Determina cuántas unidades de Windows PowerShell se permiten en una sesión determinada. Esto incluye las unidades del sistema de archivos y los almacenes de datos que exponen los proveedores de Windows PowerShell y aparecen como unidades, como las unidades Alias: y HKLM: .

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

(get-psdrive).count

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

Determina cuántos errores se guardan en el historial de errores de la sesión.

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

Los objetos que representan cada error retenido se almacenan en la variable automática $Error. Esta variable contiene una matriz de objetos de registros de errores, uno por cada error. El error más reciente es el primer objeto de la matriz ($Error[0]).

Para contar los errores del sistema, utilice la propiedad Count de la matriz $Error. Escriba:

$Error.count

Para mostrar un error concreto, utilice la notación de matriz para mostrarlo. Por ejemplo, para ver el error más reciente, escriba:

                $Error[0]

Para mostrar el error retenido más antiguo, escriba:

                $Error[($Error.Count -1]

Para mostrar las propiedades del objeto ErrorRecord, escriba:

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

En este comando, el parámetro Force reemplaza el formato especial de los objetos ErrorRecord y vuelve al formato convencional.

Para eliminar todos los errores del historial de errores, utilice el método Clear de la matriz de errores.

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

Para buscar todos los métodos y propiedades de una matriz de errores, utilice el cmdlet Get-Member con su parámetro InputObject. Cuando se canaliza una colección de objetos a Get-Member, Get-Member obtiene los miembros y propiedades de los objetos de la colección. Cuando se usa el parámetro InputObject de Get-Member, Get-Member muestra los métodos y propiedades de la colección.

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

Determina cuántas funciones se permiten en una sesión determinada.

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

Para ver las funciones de la sesión, utilice la unidad Function: de Windows PowerShell que se expone mediante el proveedor Function de Windows PowerShell. (Para más información sobre el proveedor Function, escriba "get-help function").

Para enumerar las funciones de la sesión actual, escriba:

            get-childitem function:

Para realizar un recuento de las funciones de la sesión actual, escriba:

            (get-childitem function:).count

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

Determina el número de comandos que se guardan en el historial de comandos de la sesión actual.

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

Para determinar el número de comandos guardados actualmente en el historial de comandos, escriba:

            (get-history).count

Para ver el comando guardado en el historial de su sesión, use el cmdlet Get-History. Para más información, consulte about_History (https://go.microsoft.com/fwlink/?LinkID=113233).

NOTA: en Windows PowerShell 2.0, el valor predeterminado de la variable $MaximumHistoryCount es 64.

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

Determina cuántas variables se permiten en una sesión determinada, incluidas las variables automáticas, las variables de preferencia y las variables que se crean en comandos y scripts.

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

Para ver las variables de la sesión, use el cmdlet Get-Variable y las características de la unidad de Windows PowerShell Variable: y el proveedor de Windows PowerShell Variable. Para más información sobre el proveedor Variable, escriba "get-help variable".

Para conocer el número actual de variables en el sistema, escriba:

            (get-variable).count

$OFS
----

Separador de campos de salida. Especifica el carácter que separa los elementos de una matriz cuando la matriz se convierte en una cadena.

        Valid values: Any string.
        Default: Space

De forma predeterminada, la variable $OFS no existe y el separador de los archivos de salida es un espacio, pero puede agregar esta variable y establecerla en cualquier cadena.

EJEMPLOS

En este ejemplo se muestra que se utiliza un espacio para separar los valores cuando una matriz se convierte en una cadena. En este caso, una matriz de enteros se almacena en una variable y luego se convierte la variable a una cadena.

       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 cambiar el separador, agregue la variable $OFS asignándole un valor. Para que funcione correctamente, la variable se debe denominar $OFS.

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

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

Para restaurar el comportamiento predeterminado, puede asignar un espacio (" ") al valor de $OFS o eliminar la variable. Este comando elimina la variable y después comprueba que el separador es un espacio.

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

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

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

Determina el método de codificación de caracteres que usa Windows PowerShell cuando envía texto a otras aplicaciones.

Por ejemplo, si una aplicación devuelve cadenas Unicode a Windows PowerShell, puede que deba cambiar el valor a UnicodeEncoding para enviar los caracteres correctamente.

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

        Default: ASCIIEncoding object (System.Text.ASCIIEncoding)

EJEMPLOS

En este ejemplo se muestra cómo hacer que el comando de Windows FINDSTR funcione en Windows PowerShell en un equipo que está localizado a un idioma que utiliza caracteres Unicode, como el chino. El primer comando busca el valor de $OutputEncoding. Como el valor es un objeto de codificación, muestre solo su propiedad EncodingName.

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

En este ejemplo se utiliza un comando FINDSTR para buscar dos caracteres chinos que se encuentran en el archivo Test.txt. Cuando se ejecuta este comando FINDSTR en la línea de comandos de Windows (Cmd.exe), FINDSTR busca los caracteres en el archivo de texto. Sin embargo, si se ejecuta el mismo comando FINDSTR en Windows PowerShell, no se encontrarán los caracteres porque Windows PowerShell los envía a FINDSTR como texto ASCII en lugar de texto Unicode.

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

Para que el comando funcione en Windows PowerShell, establezca el valor de $OutputEncoding como el valor de la propiedad OutputEncoding de la consola, que se basa en la configuración regional seleccionada para Windows. Como OutputEncoding es una propiedad estática de la consola, utilice dos signos de dos puntos (::) en el 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.

Gracias a este cambio, el comando FINDSTR buscará los caracteres.

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

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

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

Determina cómo responde Windows PowerShell a las actualizaciones de progreso que genera un script, un cmdlet o un proveedor, como las barras de progreso que genera el cmdlet Write-Progress. El cmdlet Write-Progress crea barras de progreso que representan el estado de un comando.

Valores válidos:

Stop: no muestra la barra de progreso. En su lugar, muestra un mensaje de error y detiene la ejecución.

Inquire: no muestra la barra de progreso. Solicita permiso para continuar. Si responde con Y o A, muestra la barra de progreso.

Continue (valor predeterminado): muestra la barra de progreso y continúa con la ejecución.

SilentlyContinue: ejecuta el comando, pero no muestra la barra de progreso.

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

Especifica el servidor de correo electrónico predeterminado que se utilizará para enviar mensajes de correo electrónico. Los cmdlets que envían correos electrónicos, como Send-MailMessage, usan esta variable de preferencia.

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

Especifica los valores predeterminados de los parámetros de los cmdlets y funciones avanzadas. El valor de $PSDefaultParameterValues es una tabla hash en la que la clave consta del nombre del cmdlet y el nombre del parámetro separados por dos puntos (:), y el valor es un valor predeterminado personalizado que usted especifica.

Esta variable se introdujo en Windows PowerShell 3.0.

Para más información sobre esta variable de preferencia, consulte about_Parameters_Default_Values.

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

Habilita y deshabilita la importación automática de módulos en la sesión. "All" es el valor predeterminado. Independientemente del valor de esta variable, puede utilizar el cmdlet Import-Module para importar un módulo.

Los valores válidos son:

All Los módulos se importan automáticamente en el primer uso. Para importar un módulo, obtenga (Get-Command) o utilice cualquier comando del módulo.

ModuleQualified

Los módulos se importan automáticamente solo cuando un usuario utiliza el nombre de módulo completo de un comando del módulo. Por ejemplo, si el usuario escribe "MyModule\MyCommand", Windows PowerShell importa el módulo MyModule.

None La importación automática de módulos se deshabilita en la sesión. Para importar un módulo, use el cmdlet Import-Module.

Para más información sobre la importación automática de módulos, consulte about_Modules (https://go.microsoft.com/fwlink/?LinkID=144311).

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

Especifica el nombre de aplicación predeterminado de un comando remoto que utiliza la tecnología de WS-Management.

El nombre de la aplicación de sistema predeterminado es WSMAN, pero puede utilizar esta variable de preferencia para cambiar el valor predeterminado.

El nombre de aplicación es el último nodo de un URI de conexión. Por ejemplo, el nombre de aplicación del siguiente ejemplo de URI es WSMAN.

           http://Server01:8080/WSMAN

Se utiliza el nombre de aplicación predeterminado si el comando remoto no especifica un URI de conexión o un nombre de aplicación.

El servicio WinRM usa el nombre de aplicación para seleccionar un agente de escucha que atienda la solicitud de conexión. El valor de este parámetro debe coincidir con el valor de la propiedad URLPrefix de un agente de escucha en el equipo remoto.

Para reemplazar el valor predeterminado del sistema y el valor de esta variable y seleccionar un nombre de aplicación diferente para una sesión determinada, use los parámetros ConnectionURI o ApplicationName de los cmdlets New-PSSession, Enter-PSSession o Invoke-Command.

Esta variable de preferencia se establece en el equipo local, pero especifica una escucha en el equipo remoto. Si el nombre de aplicación especificado no existe en el equipo remoto, se produce un error en el comando que establece la sesión.

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

Especifica la configuración de sesión predeterminada que se utiliza para las PSSessions que creó en la sesión actual.

Esta variable de preferencia se establece en el equipo local, pero especifica una configuración de sesión que se encuentra en el equipo remoto.

El valor de la variable $PSSessionConfigurationName es un URI de recurso completo.

El valor predeterminado:

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

indica la configuración de sesión Microsoft.PowerShell en el equipo remoto.

Si solo especifica un nombre de configuración, se antepondrá el siguiente URI de esquema:

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

Puede reemplazar el valor predeterminado y seleccionar una configuración de sesión diferente para una sesión determinada mediante el parámetro ConfigurationName de los cmdlets New-PSSession, Enter-PSSession o Invoke-Command.

Puede cambiar el valor de esta variable en cualquier momento. Cuando lo haga, recuerde que la configuración de sesión que seleccione debe existir en el equipo remoto. Si no es así, se produce un error en el comando para crear una sesión que usa la configuración de sesión.

Esta variable de preferencia no determina las configuraciones de sesión local que se usan cuando los usuarios remotos crean una sesión que se conecta a este equipo. Sin embargo, puede utilizar los permisos de las configuraciones de sesión local para determinar los usuarios que pueden usarlas.

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

Establece los valores predeterminados de las opciones de usuario avanzadas en una sesión remota. Estas preferencias de opción reemplazan los valores predeterminados del sistema de las opciones de sesión.

La variable $PSSessionOption contiene un objeto PSSessionOption (System.Management.Automation.Remoting.PSSessionObject). Cada propiedad del objeto representa una opción de sesión. Por ejemplo, la propiedad NoCompression desactiva la compresión de datos durante la sesión.

De forma predeterminada, la variable $PSSessionOption contiene un objeto PSSessionOption con los valores predeterminados para todas las opciones, como se muestra a continuación.

            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 obtener descripciones de estas opciones, vea el tema de ayuda del cmdlet New-PSSessionOption.

Para cambiar el valor de la variable de preferencia $PSSessionOption, use el cmdlet New-PSSessionOption para crear un objeto PSSessionOption con los valores de opciones que prefiera. Guarda la salida en una variable denominada $PSSessionOption.

Por ejemplo,

            $PSSessionOption = New-PSSessionOption -NoCompression

Para utilizar la variable de preferencia $PSSessionOption en todas las sesiones de Windows PowerShell, agregue un comando New-PSSessionOption que cree la variable $PSSessionOption para su perfil de Windows PowerShell.

También puede establecer opciones personalizadas para una sesión remota determinada. Las opciones que establezca tienen prioridad sobre los valores predeterminados del sistema y el valor de la variable de preferencia de $PSSessionOption.

Para establecer opciones de sesión personalizadas, use el cmdlet New-PSSessionOption para crear un objeto PSSessionOption. Después, utilice el objeto PSSessionOption como el valor del parámetro SessionOption en los cmdlets que crean una sesión, como New-PSSession, Enter-PSSession e Invoke-Command.

Para más información sobre el cmdlet New-PSSessionOption, consulte el tema de ayuda de New-PSSessionOption. Para más información sobre las sesiones y los comandos remotos, consulte about_Remote y about_PSSessions. Para más información sobre el uso de un perfil, consulte about_Profiles.

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

Determina cómo responde Windows PowerShell a los mensajes detallados generados por un script, un cmdlet o un proveedor, como los mensajes generados por el cmdlet Write-Verbose. Normalmente, los mensajes detallados describen las acciones realizadas para ejecutar un comando.

De forma predeterminada, no se muestran mensajes detallados, pero puede cambiar este comportamiento si cambia el valor de $VerbosePreference.

También puede utilizar el parámetro común Verbose de un cmdlet para mostrar u ocultar los mensajes detallados de un comando específico. Para más información, escriba: "get-help about_commonparameters".

Valores válidos:

Stop: muestra el mensaje detallado y un mensaje de error y, después, deja de ejecutarse.

Inquire: muestra el mensaje detallado y luego muestra un mensaje que le pregunta si desea continuar.

Continue: muestra el mensaje detallado y luego continúa con la ejecución.

SilentlyContinue (valor predeterminado): no se muestra el mensaje detallado. Continúa la ejecución.

EJEMPLOS

En estos ejemplos se muestra el efecto de los distintos valores de $VerbosePreference y el uso del parámetro común Verbose para reemplazar el valor de preferencia.

En este ejemplo se muestra el efecto del valor SilentlyContinue, que es el valor predeterminado.

        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.

En este ejemplo se muestra el efecto del 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.

En este ejemplo se muestra el efecto del 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.

En este ejemplo se muestra el efecto del 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 cómo responde Windows PowerShell a los mensajes de advertencia generados por un script, un cmdlet o un proveedor, como los mensajes generados por el cmdlet Write-Warning.

De forma predeterminada, se muestran mensajes de advertencia y continúa la ejecución, pero puede cambiar este comportamiento si cambia el valor de $WarningPreference.

También puede utilizar el parámetro común WarningAction de un cmdlet para determinar cómo responde Windows PowerShell a las advertencias de un comando determinado. Para más información, escriba: "get-help about_commonparameters".

Valores válidos:

Stop: muestra el mensaje de advertencia y un mensaje de error y, después, deja de ejecutarse.

Inquire: muestra el mensaje de advertencia y luego le pide permiso para continuar.

Continue (valor predeterminado): muestra el mensaje de advertencia y continúa la ejecución.

SilentlyContinue: no se muestra el mensaje de advertencia. Continúa la ejecución.

EJEMPLOS

En estos ejemplos se muestra el efecto de los distintos valores de $WarningPreference y el uso del parámetro común WarningAction para reemplazar el valor de preferencia.

En este ejemplo se muestra el efecto del valor Continue, que es el valor predeterminado.

            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     

En este ejemplo se muestra el efecto del 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
                                 

En este ejemplo se muestra el efecto del 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.

En este ejemplo se muestra el efecto del 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 si WhatIf se habilita automáticamente para todos los comandos que lo admiten. Cuando se habilita WhatIf, el cmdlet notifica el efecto esperado del comando, pero no ejecuta el comando.

Valores válidos:

0 (valor predeterminado): WhatIf no se habilita automáticamente. Para habilitarlo manualmente, use el parámetro WhatIf del comando.

1: WhatIf se habilita automáticamente en cualquier comando que lo admita. Los usuarios pueden utilizar el comando WhatIf con un valor de False para deshabilitarlo manualmente (WhatIf:$false).

EXPLICACIÓN DETALLADA

Cuando un cmdlet admite WhatIf, el cmdlet indica el efecto esperado del comando, en lugar de ejecutarlo. Por ejemplo, en lugar de eliminar el archivo test.txt como respuesta a un comando Remove-Item, Windows PowerShell informa de lo que eliminaría. Un comando Get-Childitem posterior confirma que no se eliminó el archivo.

              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

EJEMPLOS

En estos ejemplos se muestra el efecto de los distintos valores de $WhatIfPreference. También se muestra cómo utilizar el parámetro de cmdlet WhatIf para reemplazar el valor de preferencia de un comando concreto.

En este ejemplo se muestra el efecto del valor 0 (no habilitado), que es el valor predeterminado.

             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

En este ejemplo se muestra el efecto de usar el parámetro WhatIf cuando el valor de $WhatIfPreference es 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

En este ejemplo se muestra el efecto del valor 1 (WhatIf habilitado). Cuando se utiliza Remove-Item para eliminar un cmdlet, Remove-Item muestra la ruta de acceso del archivo que eliminaría, pero no lo elimina.

             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.

En este ejemplo se muestra cómo eliminar un archivo si el valor de $WhatIfPreference es 1. Usa el parámetro WhatIf con un valor de $false.

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

En este ejemplo se muestra que algunos cmdlets admiten el comportamiento de WhatIf y otros no. En este ejemplo, en el que el valor de $WhatIfPreference es 1 (habilitado), se ejecuta un comando Get-Process, que no admite WhatIf, pero un comando Stop-Process realiza el comportamiento de WhatIf. Puede reemplazar el comportamiento de WhatIf del comando Stop-Process si utiliza el parámetro WhatIf con un 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.

VEA TAMBIÉN

about_Automatic_Variables

about_CommonParameters

about_Environment_Variables

about_Profiles

about_Remote about_Scopes