Compartir a través de


about_Preference_Variables

Descripción breve

Variables que personalizan el comportamiento de PowerShell.

Descripción larga

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

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

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

Variable Valor predeterminado
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (no registrado)
$LogCommandLifecycleEvent $False (no registrado)
$LogEngineHealthEvent $True (registrado)
$LogEngineLifecycleEvent $True (registrado)
$LogProviderLifecycleEvent $True (registrado)
$LogProviderHealthEvent $True (registrado)
$MaximumHistoryCount 4096
$OFS Carácter de espacio (" ")
$OutputEncoding Objecto UTF8Encoding
$ProgressPreference Continue
$PSDefaultParameterValues @{} (tabla hash vacía)
$PSEmailServer $Null (ninguno)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption Objecto PSSessionOption
$Transcript $Null (ninguno)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $False

PowerShell incluye las siguientes variables de entorno que almacenan las preferencias del usuario. Para obtener más información sobre estas variables de entorno, consulte about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Nota

Los cambios en la variable de preferencia solo surten efecto en scripts y funciones si esos scripts o funciones se definen en el mismo ámbito que el ámbito en el que se usó la preferencia. Para obtener más información, consulte about_Scopes.

Trabajar con variables de preferencia

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

Para mostrar el valor actual de una variable de preferencia específica, escriba el nombre de la variable. Por ejemplo, el siguiente comando muestra el valor de la $ConfirmPreference variable.

 $ConfirmPreference
High

Para cambiar el valor de una variable, use una instrucción de asignación. Por ejemplo, la siguiente instrucción cambia el $ConfirmPreference valor del parámetro a Medium.

$ConfirmPreference = "Medium"

Los valores que establezca son específicos de la sesión actual de PowerShell. Para que las variables sean eficaces en todas las sesiones de PowerShell, agréguelas al perfil de PowerShell. Para obtener más información, consulte about_Profiles.

Trabajo en remoto

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

Para obtener más información sobre los comandos remotos, consulte about_Remote.

$ConfirmPreference

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

La $ConfirmPreference variable toma una de lasConfirmImpact valores de enumeración: High, Medium, Low o None.

A los cmdlets y funciones se les asigna un riesgo de alto, medio o bajo. Cuando el valor de la $ConfirmPreference variable es menor o igual que el riesgo asignado a un cmdlet o función, PowerShell le pedirá automáticamente confirmación antes de ejecutar el cmdlet o la función.

Si el valor de la $ConfirmPreference variable es None, PowerShell nunca le pedirá 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 $ConfirmPreference el valor de la variable.

Para invalidar para un solo comando, use el $ConfirmPreference parámetro Confirm de un cmdlet o una función. Para solicitar confirmación, use -Confirm. Para suprimir la confirmación, use -Confirm:$false.

Valores válidos de $ConfirmPreference:

  • Ninguno: PowerShell no solicita automáticamente. Para solicitar la confirmación de un comando determinado, use el parámetro Confirm del cmdlet o la función.
  • Bajo: PowerShell solicita confirmación antes de ejecutar cmdlets o funciones con un riesgo bajo, medio o alto.
  • Medio: PowerShell solicita confirmación antes de ejecutar cmdlets o funciones con un riesgo medio o alto.
  • Alto: PowerShell solicita confirmación antes de ejecutar cmdlets o funciones con un alto riesgo.

Explicación detallada

PowerShell puede solicitar automáticamente confirmación antes de realizar una acción. Por ejemplo, cuando el cmdlet o la función afectan significativamente al sistema para eliminar datos o usar una cantidad significativa de recursos del sistema.

Remove-Item -Path C:\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  [?] Help (default is "Y"):

La estimación del riesgo es un atributo del cmdlet o función conocido como ConfirmImpact. Los usuarios no pueden cambiarla.

Los cmdlets y funciones que podrían 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.

Dado que la mayoría de los cmdlets y funciones usan el valor de riesgo predeterminado ConfirmImpact, de Medium y el valor predeterminado de $ConfirmPreference es High, la confirmación automática rara vez se produce. Sin embargo, puede activar la confirmación automática cambiando el valor de $ConfirmPreference a Medio o Bajo.

Ejemplos

En este ejemplo se muestra el efecto del valor predeterminado de la $ConfirmPreference variable, High. El valor Alto solo confirma las funciones y los cmdlets de alto riesgo. Dado que la mayoría de los cmdlets y las funciones son de riesgo medio, no se confirman Remove-Item y eliminan automáticamente el archivo. Al agregar -Confirm al comando se le pide confirmación al usuario.

$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt

Use -Confirm para solicitar confirmación.

Remove-Item -Path C:\temp2.txt -Confirm
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
[?] Help (default is "Y"):

En el ejemplo siguiente se muestra el efecto de cambiar el valor de $ConfirmPreference a Medio. Dado que la mayoría de los cmdlets y la función son de riesgo medio, se confirman automáticamente. Para suprimir el símbolo del sistema de confirmación de un solo comando, use el parámetro Confirm con un valor de $false.

$ConfirmPreference = "Medium"
Remove-Item -Path C:\temp2.txt
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
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false

$DebugPreference

Determina cómo Responde PowerShell a los mensajes de depuración generados por un script, un cmdlet o un proveedor, o por un Write-Debug comando en la línea de comandos.

La $DebugPreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

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

Puede usar el parámetro común Depurar de un cmdlet para mostrar u ocultar los mensajes de depuración de un comando específico. Para obtener más información, consulta about_CommonParameters.

Los valores válidos son los siguientes:

  • Detener: muestra el mensaje de depuración y deja de ejecutarse. Escribe un error en la consola.
  • Pregunta: muestra el mensaje de depuración y le pregunta si desea continuar. Al agregar el parámetro común Debug a un comando, cuando el comando está configurado para generar un mensaje de depuración, cambia el valor de la $DebugPreference variable a Inquire.
  • Continuar: 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 Write-Debug comando en la línea de comandos. El cambio afecta a todos los mensajes de depuración, incluidos los mensajes generados por cmdlets y scripts. Los ejemplos muestran el parámetro 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 de la $DebugPreference variable SilentlyContinue. De forma predeterminada, el Write-Debug mensaje de depuración del cmdlet no se muestra y el procesamiento continúa. Cuando se usa el parámetro Debug , invalida la preferencia de un solo comando. Se muestra el mensaje de depuración.

$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World

En este ejemplo se muestra el efecto de $DebugPreference con el valor Continue . Se muestra el mensaje de depuración y el comando continúa procesando.

$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

En este ejemplo se usa el parámetro Debug con un valor de $false para suprimir el mensaje de un solo comando. No se muestra el mensaje de depuración.

Write-Debug -Message "Hello, World" -Debug:$false

En este ejemplo se muestra el efecto de $DebugPreference establecerse en el valor Stop . Se muestra el mensaje de depuración y se detiene el comando.

$DebugPreference = "Stop"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
Write-Debug : The running command stopped because the preference variable
 "DebugPreference" or common parameter is set to Stop: Hello, World
At line:1 char:1
+ Write-Debug -Message "Hello, World"

En este ejemplo se usa el parámetro Debug con un valor de $false para suprimir el mensaje de un solo comando. El mensaje de depuración no se muestra y no se detiene el procesamiento.

Write-Debug -Message "Hello, World" -Debug:$false

En este ejemplo se muestra el efecto de $DebugPreference establecerse en el valor Inquire . Se muestra el mensaje de depuración y se solicita confirmación al usuario.

$DebugPreference = "Inquire"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

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

En este ejemplo se usa el parámetro Debug con un valor de $false para suprimir el mensaje de un solo comando. El mensaje de depuración no se muestra y el procesamiento continúa.

Write-Debug -Message "Hello, World" -Debug:$false

$ErrorActionPreference

Determina cómo Responde PowerShell a un error de no terminación, un error que no detiene el procesamiento del cmdlet. Por ejemplo, en la línea de comandos o en un script, cmdlet o proveedor, como los errores generados por el Write-Error cmdlet.

La $ErrorActionPreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

Puede usar el parámetro común ErrorAction de un cmdlet para invalidar la preferencia de un comando específico.

Los valores válidos son los siguientes:

  • Interrumpir : escriba el depurador cuando se produzca un error o cuando se produzca una excepción.
  • Continuar: (valor predeterminado) Muestra el mensaje de error y continúa ejecutándose.
  • Omitir: suprime el mensaje de error y continúa ejecutando el comando . El valor Ignore está pensado para uso por comando, no para su uso como preferencia guardada. Ignore no es un valor válido para la $ErrorActionPreference variable.
  • Pregunta: muestra el mensaje de error y le pregunta si desea continuar.
  • SilentlyContinue: Sin efecto. El mensaje de error no se muestra y la ejecución continúa sin interrupción.
  • Detener: muestra el mensaje de error y deja de ejecutarse. Además del error generado, el valor Stop genera un objeto ActionPreferenceStopException al flujo de error. flujo
  • Suspender: suspende automáticamente un trabajo de flujo de trabajo para permitir una investigación más detallada. Después de la investigación, se puede reanudar el flujo de trabajo. El valor Suspend está pensado para uso por comando, no para su uso como preferencia guardada. Suspender no es un valor válido para la $ErrorActionPreference variable.

$ErrorActionPreference y el parámetro ErrorAction no afectan al modo en que PowerShell responde a los errores de terminación que detienen el procesamiento de cmdlets. Para obtener más información sobre el parámetro común ErrorAction , consulte about_CommonParameters.

Ejemplos

Estos ejemplos muestran el efecto de los distintos valores de la $ErrorActionPreference variable. El parámetro ErrorAction se usa para invalidar el $ErrorActionPreference valor.

En este ejemplo se muestra el $ErrorActionPreference valor predeterminado Continue. Se genera un error de no terminación. El mensaje se muestra y el procesamiento continúa.

# Change the ErrorActionPreference to 'Continue'
$ErrorActionPreference = 'Continue'
# Generate a non-terminating error and continue processing the script.
Write-Error -Message  'Test Error' ; Write-Host 'Hello World'
Write-Error: Test Error
Hello World

En este ejemplo se muestra el $ErrorActionPreference valor predeterminado, Inquire. Se genera un error y se muestra una solicitud de acción.

# Change the ErrorActionPreference to 'Inquire'
$ErrorActionPreference = 'Inquire'
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
Confirm
Test Error
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

En este ejemplo se muestra el $ErrorActionPreference valor establecido en SilentlyContinue. Se suprime el mensaje de error.

# Change the ErrorActionPreference to 'SilentlyContinue'
$ErrorActionPreference = 'SilentlyContinue'
# Generate an error message
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
# Error message is suppressed and script continues processing
Hello World

En este ejemplo se muestra el $ErrorActionPreference valor establecido en Detener. También muestra el objeto adicional generado en la $Error variable .

# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is is generated and script stops processing
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'

# Show the ActionPreferenceStopException and the error generated
$Error[0]
$Error[1]
Write-Error: Test Error

ErrorRecord                 : Test Error
WasThrownFromThrowStatement : False
TargetSite                  : System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]
                              Invoke(System.Collections.IEnumerable)
StackTrace                  :    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
                                 at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline,
                              Exception& exceptionThrown, ExecutionOptions options)
Message                     : The running command stopped because the preference variable "ErrorActionPreference" or
                              common parameter is set to Stop: Test Error
Data                        : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException              :
HelpLink                    :
Source                      : System.Management.Automation
HResult                     : -2146233087

Write-Error: Test Error

$ErrorView

Determina el formato de presentación de los mensajes de error en PowerShell.

La $ErrorView variable toma uno de los ErrorView valores de enumeración: NormalView, CategoryView o ConciseView.

Los valores válidos son los siguientes:

  • ConcisoView: (valor predeterminado) Proporciona un mensaje de error conciso y una vista refactorizado para los generadores de módulos avanzados. Si el error procede de la línea de comandos, se trata de un único mensaje de error de línea. De lo contrario, recibirá un mensaje de error de varias líneas que contiene el error y un puntero al error que muestra dónde se produce en esa línea. Si el terminal admite Terminal virtual, los códigos de color ANSI se usan para proporcionar énfasis de color. El color de énfasis se puede cambiar en $Host.PrivateData.ErrorAccentColor. Use Get-Error el cmdlet para obtener una vista detallada completa del error completo, incluidas las excepciones internas.

    ConcisoView se agregó en PowerShell 7.

  • NormalView: una vista detallada diseñada para la mayoría de los usuarios. Consta de una descripción del error y el nombre del objeto implicado en el error.

  • CategoryView: una vista concisa y estructurada diseñada para entornos de producción. El formato es como sigue:

    {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

Para obtener más información sobre los campos de CategoryView, vea ErrorCategoryInfo (clase).

Ejemplos

En este ejemplo se muestra cómo aparece un error cuando el valor de $ErrorView es el valor predeterminado, ConcisoView. Get-ChildItem se usa para buscar un directorio inexistente.

Get-ChildItem -path 'C:\NoRealDirectory'
Get-ChildItem: Cannot find path 'C:\NoRealDirectory' because it does not exist.

En este ejemplo se muestra cómo aparece un error cuando el valor de $ErrorView es el valor predeterminado, ConcisoView. Script.ps1 se ejecuta y produce un error de la Get-Item instrucción .

./Script.ps1
Get-Item: C:\Script.ps1
Line |
  11 | Get-Item -Path .\stuff
     | ^ Cannot find path 'C:\demo\stuff' because it does not exist.

En este ejemplo se muestra cómo aparece un error cuando el valor de $ErrorView se cambia a NormalView. Get-ChildItem se usa para buscar un archivo inexistente.

Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt

En este ejemplo se muestra cómo aparece el mismo error cuando el valor de $ErrorView se cambia a CategoryView.

$ErrorView = "CategoryView"
Get-ChildItem -Path C:\nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException

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

El siguiente comando toma el objeto ErrorRecord asociado al error más reciente en la matriz de errores, el elemento 0 y da formato a todas las propiedades del objeto de error de una lista.

$Error[0] | Format-List -Property * -Force
PSMessageDetails      :
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, UInt32
                          depth, CmdletProviderContext context)
                        at System.Management.Automation.ChildItemCmdlet
                          ProviderIntrinsics.Get(String path, Boolean
                          recurse, UInt32 depth, 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
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {0, 1}

$FormatEnumerationLimit

Determina cuántos elementos enumerados se incluyen en una pantalla. Esta variable no afecta a los objetos subyacentes, solo la presentación. Cuando el valor de $FormatEnumerationLimit es menor que el número de elementos enumerados, PowerShell agrega puntos suspensivos (...) para indicar los elementos que no se muestran.

Valores válidos: enteros (Int32)

Valor predeterminado: 4

Ejemplos

En este ejemplo se muestra cómo usar la $FormatEnumerationLimit variable para mejorar la presentación de elementos enumerados.

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

El resultado es una tabla que enumera el estado en la columna Nombre y los procesos de la columna Grupo . Para cambiar las etiquetas de columna, use una tabla hash, consulte about_Hash_Tables. Para obtener más información, vea los ejemplos de Format-Table.

Busque el valor actual de $FormatEnumerationLimit.

$FormatEnumerationLimit
4

Enumera todos los servicios agrupados por Estado. Hay un máximo de cuatro servicios enumerados en la columna Grupo para cada estado porque $FormatEnumerationLimit tiene un valor de 4.

Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart...}

Para aumentar el número de elementos enumerados, aumente el valor de $FormatEnumerationLimit a 1000. Use Get-Service y Group-Object para mostrar los servicios.

$FormatEnumerationLimit = 1000
Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...

Use Format-Table con el parámetro Wrap para mostrar la lista de servicios.

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

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

$InformationPreference

La $InformationPreference variable le permite establecer preferencias de flujo de información que desea mostrar a los usuarios. En concreto, los mensajes informativos que agregó a comandos o scripts mediante la adición del cmdlet Write-Information . Si se usa el parámetro InformationAction , su valor invalida el valor de la $InformationPreference variable. Write-Information se introdujo en PowerShell 5.0.

La $InformationPreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

Los valores válidos son los siguientes:

  • Detener: detiene un comando o script en una aparición del Write-Information comando.
  • Consulta: muestra el mensaje informativo que especificas en un Write-Information comando y, a continuación, pregunta si quieres continuar.
  • Continuar: muestra el mensaje informativo y continúa ejecutándose.
  • Suspender solo está disponible para flujos de trabajo que no se admiten en PowerShell 6 y versiones posteriores.
  • SilentlyContinue: (Valor predeterminado) Sin efecto. Los mensajes informativos no se muestran y el script continúa sin interrupción.

$Log*Evento

Las variables de preferencia Log*Event determinan qué tipos de eventos se escriben en el registro de eventos de PowerShell en Visor de eventos. De forma predeterminada, solo se registran los eventos de motor y proveedor. Sin embargo, puede usar las variables de preferencias Log*Event para personalizar el registro, como el registro de eventos sobre comandos.

Las variables de preferencia Log*Event son las siguientes:

  • $LogCommandHealthEvent: registra errores y excepciones en la inicialización y el procesamiento de comandos. El valor predeterminado es $false (no registrado).
  • $LogCommandLifecycleEvent: registra el inicio y detención de comandos y canalizaciones de comandos y excepciones de seguridad en la detección de comandos. El valor predeterminado es $false (no registrado).
  • $LogEngineHealthEvent: registra errores y errores de sesiones. El valor predeterminado es $true (registrado).
  • $LogEngineLifecycleEvent: registra la apertura y el cierre de sesiones. El valor predeterminado es $true (registrado).
  • $LogProviderHealthEvent: registra errores de proveedor, como errores de lectura y escritura, errores de búsqueda y errores de invocación. El valor predeterminado es $true (registrado).
  • $LogProviderLifecycleEvent: registra la adición y eliminación de proveedores de PowerShell. El valor predeterminado es $true (registrado). Para obtener información sobre los proveedores de PowerShell, consulte about_Providers.

Para habilitar un evento Log*, escriba la variable con un valor de $true, por ejemplo:

$LogCommandLifeCycleEvent = $true

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

$LogCommandLifeCycleEvent = $false

Los eventos que habilite solo son efectivos para la consola de PowerShell actual. Para aplicar la configuración a todas las consolas, guarde la configuración de variables en el perfil de PowerShell. Para obtener más información, consulte about_Profiles.

$MaximumHistoryCount

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

Valores válidos: 1 - 32768 (Int32)

Valor predeterminado: 4096

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

(Get-History).Count

Para ver los comandos guardados en el historial de sesiones, use el Get-History cmdlet . Para obtener más información, consulte about_History.

$OFS

El separador de campo de salida (OFS) especifica el carácter que separa los elementos de una matriz que se convierte en una cadena.

Valores válidos: cualquier cadena.

Valor predeterminado: espacio

De forma predeterminada, la $OFS variable no existe y el separador de archivos de salida es un espacio, pero puede agregar esta variable y establecerla en cualquier cadena. Puede cambiar el valor de $OFS en la sesión escribiendo $OFS="<value>".

Nota

Si espera el valor predeterminado de un espacio (" ") en el script, el módulo o la salida de configuración, tenga cuidado de que el $OFS valor predeterminado no se haya cambiado en otro lugar del código.

Ejemplos

En este ejemplo se muestra que se usa 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, a continuación, la variable se convierte como una cadena.

$array = 1,2,3,4
[string]$array
1 2 3 4

Para cambiar el separador, agregue la $OFS variable asignando un valor a ella. La variable debe tener el nombre $OFS.

$OFS = "+"
[string]$array
1+2+3+4

Para restaurar el comportamiento predeterminado, puede asignar un espacio (" ") al valor de $OFS o eliminar la variable. Los siguientes comandos eliminan la variable y, a continuación, comprueban que el separador es un espacio.

Remove-Variable OFS
[string]$array
1 2 3 4

$OutputEncoding

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

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

Los valores válidos son los siguientes: Objetos derivados de una clase de codificación, como ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding y UnicodeEncoding.

Valor predeterminado: objeto UTF8Encoding .

Ejemplos

En este ejemplo se muestra cómo hacer que el comando de Windows findstr.exe funcione en PowerShell en un equipo que se localiza para un idioma que usa caracteres Unicode, como chino.

El primer comando busca el valor de $OutputEncoding. Dado que el valor es un objeto de codificación, solo muestra su propiedad EncodingName .

$OutputEncoding.EncodingName

En este ejemplo, se usa un comando findstr.exe para buscar dos caracteres chinos presentes en el Test.txt archivo. Cuando este comando findstr.exe se ejecuta en el símbolo del sistema de Windows (cmd.exe), findstr.exe busca los caracteres en el archivo de texto. Sin embargo, al ejecutar el mismo comando findstr.exe en PowerShell, no se encuentran los caracteres porque PowerShell los envía a findstr.exe en texto ASCII, en lugar de en texto Unicode.

findstr <Unicode-characters>

Para que el comando funcione en PowerShell, establezca el valor de $OutputEncoding en el valor de la propiedad OutputEncoding de la consola, que se basa en la configuración regional seleccionada para Windows. Dado que OutputEncoding es una propiedad estática de la consola, use dos puntos y dos puntos (::) en el comando .

$OutputEncoding = [console]::OutputEncoding
$OutputEncoding.EncodingName
OEM United States

Después del cambio de codificación, el comando findstr.exe busca los caracteres Unicode.

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

$ProgressPreference

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

La $ProgressPreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

Los valores válidos son los siguientes:

  • Detener: no muestra la barra de progreso. En su lugar, muestra un mensaje de error y deja de ejecutarse.
  • Pregunta: no muestra la barra de progreso. Solicita permiso para continuar. Si responde con Y o A, muestra la barra de progreso.
  • Continuar: (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.

$PSDefaultParameterValues

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

$PSDefaultParameterValues se introdujo en PowerShell 3.0.

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

$PSEmailServer

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

$PSModuleAutoloadingPreference

Habilita y deshabilita la importación automática de módulos en la sesión. Todo es el valor predeterminado. Para importar un módulo, obtenga o use cualquier comando del módulo. Por ejemplo, use Get-Command. La $PSModuleAutoloadingPreference variable no existe de forma predeterminada. El comportamiento predeterminado cuando la variable no está definida es el mismo que $PSModuleAutoloadingPreference = 'All'.

Independientemente del valor de la variable, puede usar Import-Module para importar un módulo.

La $PSModuleAutoloadingPreference variable toma una de lasPSModuleAutoLoadingPreference valores de enumeración: None, ModuleQualified o All.

Los valores válidos son:

  • Todos: los módulos se importan automáticamente en el primer uso.
  • ModuleQualified: los módulos solo se importan automáticamente cuando un usuario usa el nombre completo del módulo de un comando en el módulo. Por ejemplo, si el usuario escribe MyModule\MyCommand, PowerShell importa el módulo MyModule .
  • Ninguno: la importación automática de módulos está deshabilitada en la sesión. Para importar un módulo, use el Import-Module cmdlet .

Para obtener más información sobre la importación automática de módulos, consulte about_Modules.

$PSSessionApplicationName

Especifica el nombre de aplicación predeterminado para un comando remoto que usa servicios web para la tecnología de administración (WS-Management). Para obtener más información, vea Acerca de la administración remota de Windows.

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

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

http://Server01:8080/WSMAN

El nombre de aplicación predeterminado se usa cuando el comando remoto no especifica un URI de conexión ni un nombre de aplicación.

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

Para invalidar 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 .

La $PSSessionApplicationName variable de preferencia se establece en el equipo local, pero especifica un agente de escucha en el equipo remoto. Si el nombre de la aplicación que especifique no existe en el equipo remoto, se produce un error en el comando para establecer la sesión.

$PSSessionConfigurationName

Especifica la configuración de sesión predeterminada que se usa para PSSessions creadas 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 $PSSessionConfigurationName variable es un URI de recurso completo.

El valor http://schemas.microsoft.com/PowerShell/microsoft.PowerShell predeterminado indica la configuración de sesión de Microsoft.PowerShell en el equipo remoto.

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

http://schemas.microsoft.com/PowerShell/

Puede invalidar el valor predeterminado y seleccionar una configuración de sesión diferente para una sesión determinada mediante el parámetro ConfigurationName de los New-PSSessioncmdlets , Enter-PSSessiono 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 use la configuración de sesión.

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

$PSSessionOption

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

La $PSSessionOption variable contiene un objeto PSSessionOption . Para obtener más información, vea System.Management.Automation.Remoting.PSSessionOption. Cada propiedad del objeto representa una opción de sesión. Por ejemplo, la propiedad NoCompression cambia de compresión de datos durante la sesión.

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

MaximumConnectionRedirectionCount : 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 y más información, vea New-PSSessionOption. Para obtener más información sobre los comandos y sesiones remotos, consulte about_Remote y about_PSSessions.

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

$PSSessionOption = New-PSSessionOption -NoCompression

Para usar la $PSSessionOption variable de preferencia en cada sesión de PowerShell, agregue un New-PSSessionOption comando que cree la variable en el $PSSessionOption perfil de PowerShell. Para obtener más información, consulte about_Profiles.

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

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

$Transcript

Usado por Start-Transcript para especificar el nombre y la ubicación del archivo de transcripción. Si no especifica un valor para el parámetro Path , Start-Transcript usa la ruta de acceso en el valor de la $Transcript variable global. Si no ha creado esta variable, Start-Transcript almacena las transcripciones en el $Home\My Documents directorio como \PowerShell_transcript.<time-stamp>.txt archivos.

$VerbosePreference

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

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

La $VerbosePreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

Los valores válidos son los siguientes:

  • Detener: muestra el mensaje detallado y un mensaje de error y, a continuación, deja de ejecutarse.
  • Consulta: muestra el mensaje detallado y, a continuación, muestra un mensaje que le pregunta si desea continuar.
  • Continuar: muestra el mensaje detallado y, a continuación, continúa con la ejecución.
  • SilentlyContinue: (valor predeterminado) no muestra el mensaje detallado. Continúa ejecutándose.

Puede usar el parámetro común Detallado de un cmdlet para mostrar u ocultar los mensajes detallados de un comando específico. Para obtener más información, consulta about_CommonParameters.

Ejemplos

Estos ejemplos muestran el efecto de los distintos valores de $VerbosePreference y el parámetro Verbose para invalidar el valor de preferencia.

En este ejemplo se muestra el efecto del valor SilentlyContinue , que es el valor predeterminado. El comando usa el parámetro Message , pero no escribe un mensaje en la consola de PowerShell.

Write-Verbose -Message "Verbose message test."

Cuando se usa el parámetro Verbose , se escribe el mensaje.

Write-Verbose -Message "Verbose message test." -Verbose
VERBOSE: Verbose message test.

En este ejemplo se muestra el efecto del valor Continue . La $VerbosePreference variable se establece en Continue (Continuar ) y se muestra el mensaje.

$VerbosePreference = "Continue"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

En este ejemplo se usa el parámetro Verbose con un valor de $false que invalida el valor Continue . No se muestra el mensaje.

Write-Verbose -Message "Verbose message test." -Verbose:$false

En este ejemplo se muestra el efecto del valor Stop . La $VerbosePreference variable se establece en Stop y se muestra el mensaje. El comando se detiene.

$VerbosePreference = "Stop"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.
Write-Verbose : The running command stopped because the preference variable
  "VerbosePreference" or common parameter is set to Stop: Verbose message test.
At line:1 char:1
+ Write-Verbose -Message "Verbose message test."

En este ejemplo se usa el parámetro Verbose con un valor de $false que invalida el valor Stop . No se muestra el mensaje.

Write-Verbose -Message "Verbose message test." -Verbose:$false

En este ejemplo se muestra el efecto del valor Inquire . La $VerbosePreference variable se establece en Inquire. Se muestra el mensaje y se solicita confirmación al usuario.

$VerbosePreference = "Inquire"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

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

En este ejemplo se usa el parámetro Verbose con un valor de $false que invalida el valor Inquire . No se le pide al usuario y no se muestra el mensaje.

Write-Verbose -Message "Verbose message test." -Verbose:$false

$WarningPreference

Determina cómo Responde PowerShell a los mensajes de advertencia generados por un script, cmdlet o proveedor, como los mensajes generados por el cmdlet Write-Warning .

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

La $WarningPreference variable toma una de lasActionPreference valores de enumeración: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend o Break.

Los valores válidos son los siguientes:

  • Detener: muestra el mensaje de advertencia y un mensaje de error y, a continuación, deja de ejecutarse.
  • Consulta: muestra el mensaje de advertencia y, a continuación, solicita permiso para continuar.
  • Continuar: (valor predeterminado) Muestra el mensaje de advertencia y, a continuación, continúa ejecutándose.
  • SilentlyContinue: no muestra el mensaje de advertencia. Continúa ejecutándose.

Puede usar el parámetro común WarningAction de un cmdlet para determinar cómo Responde PowerShell a las advertencias de un comando determinado. Para obtener más información, consulta about_CommonParameters.

Ejemplos

Estos ejemplos muestran el efecto de los distintos valores de $WarningPreference. El parámetro WarningAction invalida el valor de preferencia.

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

$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

En este ejemplo se usa el parámetro WarningAction con el valor SilentlyContinue para suprimir la advertencia. No se muestra el mensaje.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

En este ejemplo se cambia la $WarningPreference variable al valor SilentlyContinue . No se muestra el mensaje.

$WarningPreference = "SilentlyContinue"
$m = "This action can delete data."
Write-Warning -Message $m

En este ejemplo se usa el parámetro WarningAction para detener cuando se genera una advertencia.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Stop
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m -WarningAction Stop

En este ejemplo se cambia la $WarningPreference variable al valor Inquire . Se solicita confirmación al usuario.

$WarningPreference = "Inquire"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

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

En este ejemplo se usa el parámetro WarningAction con el valor SilentlyContinue. El comando continúa ejecutándose y no se muestra ningún mensaje.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

En este ejemplo se cambia el $WarningPreference valor a Detener.

$WarningPreference = "Stop"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m

En este ejemplo se usa WarningAction con el valor Inquire . Cuando se produce una advertencia, se solicita al usuario.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Inquire
WARNING: This action can delete data.

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

$WhatIfPreference

Determina si WhatIf está habilitado automáticamente para cada comando que lo admita. Cuando se habilita WhatIf , el cmdlet notifica el efecto esperado del comando, pero no ejecuta el comando.

Los valores válidos son los siguientes:

  • False (0, no habilitado): (valor predeterminado) WhatIf no está habilitado automáticamente. Para habilitarlo manualmente, use el parámetro WhatIf del cmdlet.
  • True (1, habilitado): WhatIf se habilita automáticamente en cualquier comando que lo admita. Los usuarios pueden usar el parámetro WhatIf con un valor de False para deshabilitarlo manualmente, como -WhatIf:$false.

Ejemplos

Estos ejemplos muestran el efecto de los distintos valores de $WhatIfPreference. Muestran cómo usar el parámetro WhatIf para invalidar el valor de preferencia de un comando específico.

En este ejemplo se muestra el efecto de la $WhatIfPreference variable establecida en el valor predeterminado, False. Use Get-ChildItem para comprobar que el archivo existe. Remove-Item elimina el archivo. Una vez eliminado el archivo, puede comprobar la eliminación con Get-ChildItem.

Get-ChildItem -Path .\test.txt
Remove-Item -Path ./test.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           9/13/2019    10:53             10 test.txt
Get-ChildItem -Path .\test.txt
Get-ChildItem : Cannot find path 'C:\Test\test.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -File test.txt

En este ejemplo se muestra el efecto de usar el parámetro WhatIf cuando el valor de $WhatIfPreference es False.

Compruebe si el archivo existe.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Use el parámetro WhatIf para determinar el resultado de intentar eliminar el archivo.

Remove-Item -Path .\test2.txt -WhatIf
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Compruebe que el archivo no se eliminó.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

En este ejemplo se muestra el efecto de la $WhatIfPreference variable establecida en el valor True. Cuando se usa Remove-Item para eliminar un archivo, se muestra la ruta de acceso del archivo, pero el archivo no se elimina.

Intente eliminar un archivo. Se muestra un mensaje sobre lo que sucedería si Remove-Item se ejecutase, pero el archivo no se elimina.

$WhatIfPreference = "True"
Remove-Item -Path .\test2.txt
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Use Get-ChildItem para comprobar que el archivo no se eliminó.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

En este ejemplo se muestra cómo eliminar un archivo cuando el valor de $WhatIfPreference es True. Usa el parámetro WhatIf con un valor de $false. Use Get-ChildItem para comprobar que se eliminó el archivo.

Remove-Item -Path .\test2.txt -WhatIf:$false
Get-ChildItem -Path .\test2.txt
Get-ChildItem : Cannot find path 'C:\Test\test2.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path .\test2.txt

A continuación se muestran ejemplos del Get-Process cmdlet que no admite WhatIf y Stop-Process que admite WhatIf. El $WhatIfPreference valor de la variable es True.

Get-Process no admite WhatIf. Cuando se ejecuta el comando, muestra el proceso de Winword .

Get-Process -Name Winword
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    130   119.84     173.38       8.39   15024   4 WINWORD

Stop-Process admite WhatIf. El proceso de Winword no se detiene.

Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".

Puede invalidar el Stop-Process comportamiento de WhatIf mediante el parámetro WhatIf con un valor de $false. El proceso de Winword se detiene.

Stop-Process -Name Winword -WhatIf:$false

Para comprobar que se ha detenido el proceso de Winword , use Get-Process.

Get-Process -Name Winword
Get-Process : Cannot find a process with the name "Winword".
  Verify the process name and call the cmdlet again.
At line:1 char:1
+ Get-Process -Name Winword

Consulte también