TEMA
Variables de preferencia
DESCRIPCIÓN BREVE
Son variables que personalizan el comportamiento de Windows
PowerShell.
DESCRIPCIÓN DETALLADA
Windows PowerShell incluye un conjunto de variables que permiten
personalizar su comportamiento. Estas "variables de preferencia"
funcionan de la misma manera que las opciones en los 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 se
pueden usar para invalidar el comportamiento de preferencia de un
comando concreto.
En la tabla siguiente se muestran las variables de preferencia y
sus valores predeterminados.
Variable Valor predeterminado
-------- -------------
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView NormalView
$FormatEnumerationLimit 4
$LogCommandHealthEvent False (no se produce el registro)
$LogCommandLifecycleEvent False (no se produce el registro)
$LogEngineHealthEvent True (se produce el registro)
$LogEngineLifecycleEvent True (se produce el registro)
$LogProviderLifecycleEvent True (se produce el registro)
$LogProviderHealthEvent True (se produce el registro)
$MaximumAliasCount 4096
$MaximumDriveCount 4096
$MaximumErrorCount 256
$MaximumFunctionCount 4096
$MaximumHistoryCount 64
$MaximumVariableCount 4096
$OFS (Carácter de espacio (" "))
$OutputEncoding Objeto ASCIIEncoding
$ProgressPreference Continue
$PSEmailServer (Ninguno)
$PSSessionApplicationName WSMAN
$PSSessionConfigurationName https://schemas.microsoft.com/powershell/microsoft.powershell
$PSSessionOption (Ver más abajo)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference 0
Windows PowerShell también incluye las siguientes variables de
entorno que almacenan las preferencias del usuario. Para obtener
más información sobre las variables de entorno, vea
about_environment_variables.
Variable
--------
PSModulePath
USAR 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
concreta, escriba el nombre de la variable. Windows PowerShell
proporcionará el valor. Por ejemplo, el comando siguiente muestra
el valor de la variable $ConfirmPreference.
PS> $ConfirmPreference
High
Para cambiar el valor de una variable, use una instrucción de
asignación. Por ejemplo, la instrucción siguiente asigna el valor
"Medium" a la variable $ConfirmPreference.
PS> $ConfirmPreference = "Medium"
Al igual que todas las variables, los valores que se establecen
son específicos de la ventana actual de Windows PowerShell. Para
que se apliquen en todas las ventanas de Windows PowerShell, debe
agregarlos a su perfil de Windows PowerShell. Para obtener más
información, vea about_profiles.
TRABAJAR DE FORMA REMOTA
Cuando se ejecutan comandos remotos en un equipo remoto, los
comandos remotos solo están sujetos al conjunto de preferencias 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 Windows
PowerShell responde a los mensajes de depuración.
Para obtener más información sobre los comandos remotos, vea
about_remote.
$ConfirmPreference
------------------
Determina qué acciones de cmdlet solicitan automáticamente la
confirmación del usuario antes de que se realicen.
Cuando el valor de $ConfirmPreference (High, Medium, Low, None)
es igual o mayor que el riesgo de la acción del cmdlet (High,
Medium, Low, None), Windows PowerShell solicita automáticamente
la confirmación del usuario antes de realizar la acción.
Se puede usar el parámetro Confirm de un cmdlet a fin de
invalidar la preferencia para un comando concreto.
Valores válidos:
None: no se confirma automáticamente ninguna acción
de cmdlet. Los usuarios deben utilizar el
parámetro Confirm para solicitar la confirmación
de comandos concretos.
Low: se confirman automáticamente las acciones de
cmdlet con un riesgo bajo, medio o alto.
Para suprimir la confirmación de un comando
concreto, utilice -Confirm:$false.
Medium: se confirman automáticamente las acciones
de cmdlet con un riesgo medio o alto.
Para habilitar la confirmación de un comando
concreto, utilice -confirm. Para suprimir
la confirmación de un comando concreto,
utilice -confirm:$false.
High: se confirman automáticamente las
(valor acciones de cmdlet con un riesgo alto.
predeterminado) Para habilitar la confirmación de
un comando concreto, utilice -confirm.
Para suprimir la confirmación de un comando
concreto, utilice -confirm:$false.
EXPLICACIÓN DETALLADA
Cuando una acción de cmdlet afecta al sistema de manera
significativa (por ejemplo, eliminando datos o usando una
cantidad importante de recursos del sistema), Windows
PowerShell puede solicitar automáticamente la confirmación
antes de realizar la acción.
Por ejemplo:
PS> remove-item pref2.txt
Confirmar
¿Está seguro de que desea realizar esta acción?
Se está realizando la operación "Quitar archivo" en el
destino "C:\pref2.txt".
[S] Sí [O] Sí a todo [N] No [T] No a todo [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
La estimación del riesgo forma parte del cmdlet y se conoce
como "ConfirmImpact". No se puede cambiar.
El cmdlet que podría suponer un riesgo para el sistema tiene
un parámetro Confirm que se puede usar para solicitar o
suprimir la confirmación de un comando concreto.
Dado que la mayoría de los cmdlets utilizan el valor de riesgo
predeterminado Medium y el valor predeterminado de $ConfirmPreference
es High, la confirmación automática se produce en raras ocasiones.
No obstante, se puede activar la confirmación automática cambiando
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 las acciones
de cmdlet de alto riesgo. Dado que la mayoría de las acciones
constituyen un riesgo medio, no se confirman automáticamente,
si bien se puede usar el parámetro Confirm del cmdlet para
solicitar la confirmación de un comando concreto.
PS> $confirmpreference #Obtener el valor
High actual de la variable.
PS> remove-item temp1.txt #Eliminar un archivo.
PS> #Se ha eliminado sin confirmación.
PS> remove-item temp2.txt -confirm #Usar el parámetro Confirm.
Confirmar
¿Está seguro de que desea realizar esta acción?
Se está realizando la operación "Quitar archivo" en el
destino "C:\temp2.txt".
[S] Sí [O] Sí a todo [N] No [T] No a todo [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
En este ejemplo se muestra el efecto de cambiar el valor de
$ConfirmPreference a Medium. Dado que la mayoría de las
acciones de cmdlet constituyen un riesgo medio, se confirman
automáticamente y se ha de usar el parámetro Confirm con el
valor $false para suprimir la solicitud de confirmación de un
comando concreto.
PS> $confirmpreference = "Medium"
# Cambiar el valor de $ConfirmPreference.
PS> remove-item temp2.txt
# La eliminación de un archivo
desencadena la confirmación.
Confirmar
¿Está seguro de que desea realizar esta acción?
Se está realizando la operación "Quitar archivo" en el
destino "C:\temp2.txt".
[S] Sí [O] Sí a todo [N] No [T] No a todo [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
PS> remove-item temp3.txt -confirm:$false #Usar el parámetro
Confirm para suprimir
la confirmación
PS>
$DebugPreference
------------------
Determina cómo Windows PowerShell responde a los mensajes de
depuración generados por un script, cmdlet o proveedor,
o bien, por 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, no
se muestran los mensajes de depuración. Para mostrarlos, se
ha de cambiar el valor de $DebugPreference.
Asimismo, se puede usar el parámetro común Debug de un cmdlet
para mostrar u ocultar los mensajes de depuración de un
comando concreto. Para obtener más información,
escriba "get-help about_commonparameters".
Valores válidos:
Stop: se muestra el mensaje de depuración
y se detiene la ejecución.
Se escribe un error en la consola.
Inquire: se muestra el mensaje de
depuración y se pregunta
al usuario si desea continuar.
Continue: se muestra el mensaje de
depuración y continúa la ejecución.
SilentlyContinue no produce ningún efecto.
(valor predeterminado): No se muestra el mensaje de depuración
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 cmdlets
y scripts. 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 comando concreto.
En este ejemplo se muestra el efecto del valor predeterminado,
"SilentlyContinue". No se muestra el mensaje de depuración y
continúa el procesamiento. El comando final utiliza el parámetro
Debug a fin de invalidar la preferencia para un comando concreto.
PS> $debugpreference # Obtener el valor actual de
SilentlyContinue $DebugPreference
PS> write-debug "Hola a todos"
PS> # No se muestra el mensaje
de depuración.
PS> write-debug "Hola a todos" -Debug # Usar el parámetro Debug.
DEPURACIÓN: Hola a todos # Se solicita el
mensaje de depuración.
¿Confirmar?
¿Desea continuar con la operación?
[S] Sí [O] Sí a todo [I] Interrumpir comando [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
En este ejemplo se muestra el efecto del valor "Continue".
El comando final utiliza el parámetro Debug con el valor $false
a fin de suprimir el mensaje para un comando concreto.
PS> $debugpreference = "Continue" # Cambiar el valor a "Continue".
PS> write-debug "Hola a todos"
DEPURACIÓN: Hola a todos # Se muestra el mensaje de depuración
PS> y continúa el procesamiento.
PS> write-debug "Hola a todos" -Debug:$false
# Usar el parámetro Debug
con el valor false.
PS> # No se muestra el mensaje
de depuración.
En este ejemplo se muestra el efecto del valor "Stop". El comando
final utiliza el parámetro Debug con el valor $false a fin de
suprimir el mensaje para un comando concreto.
PS> $debugpreference = "Stop" # Cambiar el valor a "Stop".
PS> write-debug "Hola a todos"
DEPURACIÓN: Hola a todos
Write-Debug : Se detuvo la ejecución del comando porque la
variable de shell "DebugPreference" está establecida en Stop.
En línea:1 carácter:12
+ write-debug <<<< "Hola a todos"
PS> write-debug "Hola a todos" -Debug:$false
# Usar el parámetro Debug
con $false.
PS> # No se muestra el mensaje
de depuración y no se detiene
el procesamiento.
En este ejemplo se muestra el efecto del valor "Inquire". El
comando final utiliza el parámetro Debug con el valor $false
a fin de suprimir el mensaje para un comando concreto.
PS> $debugpreference = "Inquire"
PS> write-debug "Hola a todos"
DEPURACIÓN: Hola a todos
Confirmar
¿Desea continuar con la operación?
[S] Sí [O] Sí a todo [I] Interrumpir comando [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
PS> write-debug "Hola a todos" -Debug:$false
# Usar el parámetro Debug
con $false.
PS> # No se muestra el mensaje
de depuración y continúa
el procesamiento sin interrupción.
$ErrorActionPreference
----------------------
Determina cómo Windows PowerShell responde a un error que no es de
terminación (un error que no detiene el procesamiento del cmdlet) en
la línea de comandos o en un script, cmdlet o proveedor, como los
errores generados por el cmdlet Write-Error.
Asimismo, se puede usar el parámetro común ErrorAction de un
cmdlet a fin de invalidar la preferencia para un comando
concreto. Para obtener más información, escriba "get-help
about_commonparameters".
Valores válidos:
Stop: se muestra el mensaje de error y se
detiene la ejecución.
Inquire: se muestra el mensaje de error y
se pregunta al usuario si desea continuar.
Continue: se muestra el mensaje de error
y continúa la ejecución.
SilentlyContinue
(valor predeterminado): no produce ningún efecto. No se muestra
el mensaje de error y la ejecución
continúa sin interrupción.
$ErrorActionPreference y el parámetro común ErrorAction no
afectan a la forma en que Windows PowerShell responde a los
errores de terminación (errores que detienen el procesamiento
del cmdlet).
Para obtener más información sobre el parámetro común
ErrorAction, escriba "get-help about_commonparameters".
EJEMPLOS
En estos ejemplos se muestra el efecto de los diferentes valores de
$ErrorActionPreference y el uso del parámetro común ErrorAction para
invalidar la preferencia para un comando concreto. 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 # Mostrar el valor de la preferencia.
PS> write-error "Hola a todos"
# Generar un error de no terminación.
write-error "Hola a todos" : Hola a todos
# Se muestra el mensaje de error
y la ejecución continúa.
PS> write-error "Hola a todos" -ErrorAction:SilentlyContinue
# Usar el parámetro ErrorAction con
el valor "SilentlyContinue".
PS>
# No se muestra el mensaje de error
y la ejecución continúa.
En este ejemplo se muestra el efecto del valor SilentlyContinue.
PS> $ErrorActionPreference = "SilentlyContinue"
# Cambiar el valor de la preferencia.
PS> write-error "Hola a todos"
# Generar un mensaje de error.
PS>
# Se suprime el mensaje de error.
PS> write-error "Hola a todos" -erroraction:continue
# Usar el parámetro ErrorAction con
el valor "Continue".
write-error "Hola a todos" -erroraction:continue : Hola a todos
# Se muestra el mensaje de error
y la ejecución continúa.
En este ejemplo se muestra el efecto de un error real. En este
caso, el comando obtiene un archivo no existente, nofile.txt. En
el ejemplo también se utiliza el parámetro común ErrorAction para
invalidar la preferencia.
PS> $erroractionpreference
SilentlyContinue # Mostrar el valor de la preferencia.
PS> get-childitem -path nofile.txt
PS> # Se suprime el mensaje de error.
PS> $ErrorActionPreference = "Continue"
# Cambiar el valor a Continue.
PS> get-childitem -path nofile.txt
Get-ChildItem : No se encuentra la ruta de acceso
'C:\nofile.txt' porque no existe.
En línea:1 carácter:4
+ get-childitem <<<< nofile.txt
PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
# Usar el parámetro ErrorAction.
PS>
# Se suprime el mensaje de error.
PS> $ErrorActionPreference = "Inquire"
# Cambiar el valor a Inquire.
PS> get-childitem -path nofile.txt
Confirmar
No se encuentra la ruta de acceso 'C:\nofile.txt'
porque no existe.
[S] Sí [O] Sí a todo [I] Interrumpir comando [S] Suspender
[?] Ayuda (el valor predeterminado es "S"): s
Get-ChildItem : No se encuentra la ruta de acceso
'C:\nofile.txt' porque no existe.
En línea:1 carácter:4
+ get-childitem <<<< nofile.txt
PS> $ErrorActionPreference = "Continue"
# Cambiar el valor a Continue.
PS> Get-Childitem nofile.txt -erroraction "Inquire"
# Usar el parámetro ErrorAction para
invalidar el valor de preferencia.
Confirmar
No se encuentra la ruta de acceso 'C:\nofile.txt' porque no
existe.
[S] Sí [O] Sí a todo [I] Interrumpir comando [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
$ErrorView
----------
Determina el formato en el que se muestran los mensajes de
error en Windows PowerShell.
Valores válidos: es una vista detallada diseñada para la
NormalView mayoría de los usuarios. Consta de
(valor una descripción del error,
predeterminado): el nombre del objeto implicado en el
error y flechas (<<<<) que apuntan
a las palabras en el comando
que causó el error.
CategoryView: es una vista estructurada y concisa
diseñada para los entornos de producción.
El formato es: {Categoría}:
({nombreDelDestino}:{tipoDelDestino}):[{Actividad}], {Razón}
Para obtener más información sobre los campos de CategoryView,
vea la 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 usa el comando
Get-ChildItem para obtener un archivo no existente.
PS> $ErrorView # Comprobar el valor.
NormalView
PS> get-childitem nofile.txt # Obtener un
archivo no existente.
Get-ChildItem : No se encuentra la ruta de acceso
'C:\nofile.txt' porque no existe.
En línea:1 carácter:14
+ get-childitem <<<< nofile.txt
En este ejemplo se muestra cómo aparece el mismo error cuando el
valor de $ErrorView es CategoryView.
PS> $ErrorView = "CategoryView" # Cambiar el valor a
CategoryView
PS> get-childitem nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
ItemNotFoundException
En este ejemplo se muestra que el valor de ErrorView afecta
únicamente a la forma en que se muestra el error; no cambia la
estructura del objeto de error almacenado en la variable
automática $error. Para obtener información sobre la variable
automática $error, vea about_automatic_variables.
Este comando toma el objeto ErrorRecord asociado al error más
reciente en la matriz de errores (elemento 0) y da formato de
lista a todas las propiedades del objeto de error.
PS> $error[0] | format-list -property * -force
Exception : System.Management.Automation.ItemNotFoundException:
No se encuentra la ruta de acceso 'C:\nofile.txt' porque
no existe.
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 el número de elementos enumerados que se muestran.
Esta variable no afecta a los objetos subyacentes;
simplemente afecta a la presentación.
Cuando el valor de $FormatEnumerationLimit es menor que el
número de elementos enumerados, Windows 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 variable
$FormatEnumerationLimit para mejorar la presentación de los
elementos enumerados.
El comando en este ejemplo genera una tabla en la que se
muestran todos los servicios que se ejecutan en el equipo en
dos grupos; uno para los servicios que se están ejecutando y
otro para los servicios que se han detenido. Utiliza un
comando Get-Service para obtener todos los servicios y, a
continuación, enviar los resultados a través de la
canalización al cmdlet Group-Object, que agrupa los
resultados según el estado del servicio.
Como resultado, se muestra una tabla en la que se indica el
estado en la columna Name y se especifican los procesos con
ese estado en la columna Group. (Para cambiar las etiquetas
de las columnas, utilice una tabla hash. Para obtener más
información, vea los ejemplos en "get-help format-table
-examples".)
Hay un máximo de 4 servicios en la columna Group por cada
estado. Para incrementar el número de elementos mostrados,
aumente el valor de $FormatEnumerationLimit hasta 1000.
Como resultado, la lista en la columna Group está limitada
ahora por la longitud de las líneas. En el comando final del
ejemplo, utilice el parámetro Wrap de Format-Table para
mostrar todos los procesos en cada grupo de estado.
PS> $formatenumerationlimit # Obtener el valor actual.
4
PS> get-service | group-object -property status
# Mostrar todos los servicios
agrupados por estado.
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart...}
# La lista se trunca después de
4 elementos.
PS> $formatenumerationlimit = 1000
# Aumentar el límite hasta 1000.
PS> get-service | group-object -property status
# Repetir el comando.
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
# Agregar el parámetro 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, FastUserSwitchingCompatibi
lity, HTTPFilter, ImapiService, Mapsvc, Messenger,
mnmsrvc, MSDTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm,
NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess,
RpcLocator, RSVP, 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 en el Visor de eventos. De forma
predeterminada, se registran únicamente los eventos del motor
y de los proveedores, pero se pueden usar las variables de
preferencia Log*Event para personalizar el registro, por
ejemplo, para que se registren los eventos de los comandos.
Las variables de preferencia Log*Event son las siguientes:
$LogCommandHealthEvent: registra los errores y excepciones
que se producen durante la inicialización y el procesamiento
de los comandos. El valor predeterminado es $false
(no se produce el registro).
$LogCommandLifecycleEvent:
registra el inicio y la detención de los comandos y
canalizaciones de comandos así como las excepciones
de seguridad en la detección de comandos. El valor
predeterminado es $false (no se produce el registro).
$LogEngineHealthEvent: registra los errores de las
sesiones. El valor predeterminado es
$true (se produce el registro).
$LogEngineLifecycleEvent: registra la apertura y el
cierre de las sesiones. El valor
predeterminado es $true (se produce el registro).
$LogProviderHealthEvent: registra los errores de los
proveedores, como errores de lectura y escritura, errores
de búsqueda y errores de invocación. El valor
predeterminado es $true (se produce el registro).
$LogProviderLifecycleEvent: registra la adición y la
eliminación de proveedores de Windows PowerShell.
El valor predeterminado es $true (se produce el
registro). (Para obtener información sobre los
proveedores de Windows PowerShell, escriba:
"get-help about_provider".
Para habilitar una variable Log*Event, escriba la variable
con el valor $true. Por ejemplo:
$LogCommandLifeCycleEvent
- o bien,
$LogCommandLifeCycleEvent = $true
Para deshabilitar un tipo de evento, escriba la variable con
el valor $false. Por ejemplo:
$LogCommandLifeCycleEvent = $false
Los eventos habilitados se aplican únicamente a la consola
actual de Windows PowerShell. Para aplicar la configuración a
todas las consolas, guarde la configuración de la variable en
su perfil de Windows PowerShell.
$MaximumAliasCount
------------------
Determina el número de alias que se permiten en una sesión de
Windows PowerShell. El valor predeterminado, 4096, debería
ser suficiente en la mayoría de los casos, pero puede
ajustarlo según sus necesidades.
Valores válidos: 1024 - 32768 (Int32)
Valor predeterminado: 4096
Para determinar el número de alias en el sistema, escriba:
(get-alias).count
$MaximumDriveCount
------------------
Determina el número de unidades de Windows PowerShell que se
permiten en una sesión concreta. Incluye las unidades del
sistema de archivos y los almacenes de datos que los
proveedores de Windows PowerShell exponen y que aparecen como
unidades, como las unidades Alias: y HKLM:.
Valores válidos: 1024 - 32768 (Int32)
Valor predeterminado: 4096
Para determinar el número de unidades en el sistema, escriba:
(get-psdrive).count
$MaximumErrorCount
------------------
Determina el número de errores que se guardan en el historial
de errores de la sesión.
Valores válidos: 256 - 32768 (Int32)
Valor predeterminado: 256
Los objetos que representan los errores se almacenan en la
variable automática $Error. Esta variable contiene una matriz
de objetos de registro de error, uno por cada error. El error
más reciente es el primer objeto de la matriz ($Error[0]).
Para determinar el número de errores en el sistema, utilice
la propiedad Count de la matriz $Error. Escriba:
$Error.count
Para mostrar un error concreto, utilice la notación de
matriz. Por ejemplo, para ver el error más reciente, escriba:
$Error[0]
Para mostrar el error más antiguo que se ha guardado, 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 invalida el formato
especial de los objetos ErrorRecord y restablece el 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 obtener todos los métodos y propiedades de una matriz
de errores, utilice el cmdlet Get-Member con el parámetro
InputObject. Cuando se canaliza una colección de objetos
a Get-Member, este cmdlet muestra las propiedades y los métodos
de los objetos de la colección. Cuando se usa el parámetro
InputObject de Get-Member, este cmdlet muestra las propiedades
y los métodos de la colección.
$MaximumFunctionCount
------------------
Determina el número de funciones que se permiten en una
sesión concreta.
Valores válidos: 1024 - 32768 (Int32)
Valor predeterminado: 4096
Para ver las funciones de la sesión, utilice la unidad
Function: de Windows PowerShell expuesta por el proveedor
Function de Windows PowerShell. (Para obtener más información
sobre el proveedor Function, escriba "get-help function").
Para obtener las funciones de la sesión actual, escriba:
get-childitem function:
Para determinar el número de funciones en la sesión actual,
escriba:
(get-childitem function:).count
$MaximumHistoryCount
------------------
Determina el número de comandos guardados en el historial de
comandos de la sesión actual.
Valores válidos: 1 - 32768 (Int32)
Valor predeterminado: 64
Para determinar el número de comandos actualmente guardados
en el historial de comandos, escriba:
(get-history).count
Para ver los comandos guardados en el historial de la sesión,
utilice el cmdlet Get-History. Para obtener más información,
escriba "get-help about_history".
$MaximumVariableCount
------------------
Determina el número de variables que se permiten en una
sesión concreta, incluidas las variables automáticas, las
variables de preferencia y las variables que se crean en
comandos y scripts.
Valores válidos: 1024 - 32768 (Int32)
Valor predeterminado: 4096
Para ver las variables de la sesión, utilice el cmdlet
Get-Variable y las características de la unidad Variable: de
Windows PowerShell así como del proveedor Variable de Windows
PowerShell. Para obtener información sobre el proveedor
Variable, escriba "get-help variable".
Para obtener 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 esta se convierte
en una cadena.
Valores válidos: cualquier cadena.
Valor predeterminado: un espacio
De forma predeterminada, la variable $OFS no existe y el
separador de campos de salida es un espacio, pero se puede
agregar esta variable y establecer su valor en cualquier cadena.
EJEMPLOS
En este ejemplo se muestra que se usa un espacio para separar los
valores cuando se convierte una matriz en una cadena. En este
caso, se almacena una matriz de enteros en una variable y,
a continuación, se convierte la variable en una cadena.
PS> $array = 1,2,3 # Almacenar una matriz de enteros.
PS> [string]$array # Convertir la matriz en una cadena.
1 2 3 # Los elementos están separados
por espacios.
Para cambiar el separador, agregue la variable $OFS asignándole
un valor. Para que funcione correctamente, la variable debe
denominarse $OFS.
PS> $OFS = "+" # Crear $OFS y asignarle "+".
PS> [string]$array # Repetir el comando.
1+2+3 # Los elementos están separados por
signos más.
Para restaurar el comportamiento predeterminado, puede asignar un
espacio (" ") al valor de $OFS o eliminar la variable. Este
comando elimina la variable y, a continuación, comprueba que el
separador es un espacio.
PS> Remove-Variable OFS # Eliminar $OFS.
PS>
PS> [string]$array # Repetir el comando.
1 2 3 # Los elementos están separados por
espacios.
$OutputEncoding
---------------
Determina el método de codificación de caracteres utilizado
por Windows PowerShell cuando envía texto a otras
aplicaciones. Por ejemplo, si una aplicación devuelve cadenas
Unicode a Windows PowerShell, es posible que haya que cambiar
el valor para que se envíen correctamente los caracteres.
Valores válidos: objetos derivados de una clase de codificación,
como ASCIIEncoding, SBCSCodePageEncoding,
UTF7Encoding, UTF8Encoding, UTF32Encoding
y UnicodeEncoding.
Valor predeterminado: objeto ASCIIEncoding
(System.Text.ASCIIEncoding)
EJEMPLOS
En este ejemplo, se muestra cómo proceder para que el comando
FINDSTR de Windows funcione en una versión de Windows
PowerShell localizada en un idioma que usa caracteres Unicode,
como el chino.
El primer comando busca el valor de $OutputEncoding. Dado que
el valor es un objeto de codificación, se muestra únicamente
su propiedad EncodingName.
PS> $OutputEncoding.EncodingName # Obtener el valor actual.
US-ASCII
En este ejemplo, se usa un comando FINDSTR para buscar dos
caracteres chinos en el archivo Test.txt. Cuando se ejecuta
este comando FINDSTR en el símbolo del sistema de Windows
(Cmd.exe), FINDSTR encuentra los caracteres en el archivo de
texto. Sin embargo, cuando se ejecuta el mismo comando FINDSTR
en Windows PowerShell, no se encuentran los caracteres porque
Windows PowerShell los envía a FINDSTR en texto ASCII, en
lugar de enviarlos en texto Unicode.
PS> findstr <Caracteres Unicode> # Usar findstr para
realizar la búsqueda.
PS> # No se ha encontrado
ningún carácter.
Para que el comando funcione en Windows PowerShell, establezca
el valor de $OutputEncoding en el valor de la propiedad
OutputEncoding de la consola, el cual se basa en la
configuración regional seleccionada para Windows. Dado que
OutputEncoding es una propiedad estática de la consola,
utilice dos puntos dobles (::) en el comando.
PS> $OutputEncoding = [console]::outputencoding
PS> # Establecer el valor en el
valor de la propiedad
OutputEncoding de la
consola.
PS> $OutputEncoding.EncodingName
OEM United States
# Obtener el valor resultante.
Como resultado de este cambio, el comando FINDSTR encuentra
los caracteres.
PS> findstr <caracteres Unicode>
test.txt: <Caracteres Unicode>
# Usar findstr para realizar la búsqueda.
Se encuentran los caracteres en el
archivo de texto.
$ProgressPreference
-------------------
Determina la forma en que Windows 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 cmdlet Write-Progress crea barras de progreso que
reflejan el estado de un comando.
Valores válidos:
Stop: no se muestra la barra de progreso. En su
lugar, se muestra un mensaje de error
y se detiene la ejecución.
Inquire: no se muestra la barra de progreso.
Se pregunta al usuario si desea continuar.
Si el usuario responde Sí o Sí a todo,
se muestra la barra de progreso.
Continue se muestra la barra de progreso
(valor y continúa la ejecución.
predeterminado):
SilentlyContinue: se ejecuta el comando, pero no se
muestra la barra de progreso.
$PSEmailServer
--------------
Especifica el servidor de correo electrónico predeterminado
que se utiliza para enviar los mensajes de correo electrónico.
Esta variable de preferencia la utilizan los cmdlets que
envían correo electrónico, como el cmdlet Send-MailMessage.
$PSSessionApplicationName
---------------------------
Especifica el nombre de aplicación predeterminado para un
comando remoto que utiliza la tecnología WS-Management.
El nombre de aplicación predeterminado del sistema es WSMAN,
pero se puede utilizar esta variable de preferencia para
cambiar el nombre predeterminado.
El nombre de aplicación es el último nodo en un identificador
URI de conexión. Por ejemplo, el nombre de aplicación en el
siguiente identificador URI de ejemplo es WSMAN.
http://Server01:8080/WSMAN
Se utiliza el nombre de aplicación predeterminado cuando el
comando remoto no especifica ningún identificador URI de
conexión o ningún nombre de aplicación.
El servicio WinRM utiliza el nombre de aplicación para
seleccionar un agente de escucha a fin de atender 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 invalidar el valor predeterminado del sistema y el valor
de esta variable y seleccionar otro nombre de aplicación para
una sesión concreta, utilice el parámetro ApplicationName o
ConnectionURI del cmdlet New-PSSession, Enter-PSSession o
Invoke-Command.
Esta variable de preferencia se establece en el equipo local,
pero especifica un agente de escucha en el equipo remoto. Si
el nombre de aplicación especificado no existe en el equipo
remoto, el comando para establecer la sesión generará un error.
$PSSessionConfigurationName
---------------------------
Especifica la configuración de sesión predeterminada que se
usa para las 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 en el equipo remoto.
El valor de la variable $PSSessionConfigurationName es un
identificador 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 se especifica únicamente un nombre de configuración, se
antepone el siguiente identificador URI de esquema:
https://schemas.microsoft.com/powershell/
Se puede invalidar el valor predeterminado y seleccionar otra
configuración de sesión para una sesión concreta mediante el
parámetro ConfigurationName del cmdlet New-PSSession,
Enter-PSSession o Invoke-Command.
El valor de esta variable se puede modificar en cualquier
momento. Si lo cambia, recuerde que la configuración de sesión
que seleccione debe existir en el equipo remoto. De lo
contrario, el comando para crear una sesión que use la
configuración de sesión generará un error.
Esta variable de preferencia no determina qué configuraciones
de sesión locales se usan cuando los usuarios remotos crean
una sesión que se conecta a este equipo. Sin embargo, se
pueden usar los permisos de las configuraciones de sesión
locales para determinar los usuarios que pueden utilizarlas.
$PSSessionOption
----------------
Establece los valores predeterminados de las opciones de
usuario avanzadas en una sesión remota. Estas preferencias
invalidan los valores predeterminados del sistema para las
opciones de sesión.
Asimismo, se pueden establecer opciones personalizadas para
una sesión remota concreta mediante el parámetro
SessionOption en los cmdlets que crean una sesión, como
New-PSSession, Enter-PSSession e Invoke-Command. El valor del
parámetro SessionOption tiene precedencia sobre los valores
predeterminados del sistema y los valores predeterminados que
se establecen en esta variable.
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.
Para crear la variable de preferencia $PSSessionOption,
utilice el cmdlet New-PSSessionOption. Guarde el resultado en
una variable denominada $PSSessionOption.
Por ejemplo:
$PSSessionOption = New-PSSessionOption -NoCompression
Para poder usar la variable de preferencia $PSSessionOption
en todas las sesiones de Windows PowerShell, agregue a su
perfil de Windows PowerShell un comando New-PSSessionOption
que cree la variable $PSSessionOption.
Para obtener más información sobre el cmdlet New-PSSessionOpti
on, vea el tema de Ayuda correspondiente a New-PSSessionOption.
Para obtener más información sobre los comandos remotos
y las sesiones, vea about_Remote y about_PSSessions.
Para obtener más información sobre cómo usar un perfil, vea
about_Profiles.
$VerbosePreference
------------------
Determina la forma en que Windows PowerShell responde
a los mensajes detallados generados por un script, cmdlet
o proveedor, como los mensajes generados por el cmdlet
Write-Verbose. Los mensajes detallados suelen describir las
acciones que se realizan para ejecutar un comando.
De forma predeterminada, no se muestran los mensajes
detallados, pero se puede modificar este comportamiento
cambiando el valor de $VerbosePreference.
Asimismo, se puede utilizar el parámetro común Verbose de un
cmdlet para mostrar u ocultar los mensajes detallados de un
comando concreto. Para obtener más información, escriba "get-help
about_commonparameters".
Valores válidos:
Stop: se muestran el mensaje detallado y un
mensaje de error y, a continuación,
se detiene la ejecución.
Inquire: se muestra el mensaje detallado y,
a continuación, se pregunta al
usuario si desea continuar.
Continue: se muestra el mensaje detallado
y, después, continúa la ejecución.
SilentlyContinue no se muestra el mensaje detallado.
(valor Continúa la ejecución.
predeterminado):
EJEMPLOS
En estos ejemplos se muestra el efecto de los diferentes valores de
$VerbosePreference y del uso del parámetro común Verbose para
invalidar el valor de preferencia.
En este ejemplo se muestra el efecto del valor SilentlyContinue,
que es el valor predeterminado.
PS> $VerbosePreference # Obtener el valor actual.
SilentlyContinue
PS> Write-Verbose "Prueba de mensaje detallado."
PS> # Escribir un mensaje detallado.
# No se muestra el mensaje.
PS> Write-Verbose "Prueba de mensaje detallado." -verbose
DETALLADO: Prueba de mensaje detallado.
# Usar el parámetro Verbose.
En este ejemplo se muestra el efecto del valor Continue.
PS> $VerbosePreference = "Continue"
# Cambiar el valor a Continue.
PS> Write-Verbose "Prueba de mensaje detallado."
# Escribir un mensaje detallado.
DETALLADO: Prueba de mensaje detallado.
# Se muestra el mensaje.
PS> Write-Verbose "Prueba de mensaje detallado." -verbose:$false
# Usar el parámetro
Verbose con el valor $false.
PS>
# No se muestra el mensaje.
En este ejemplo se muestra el efecto del valor Stop.
PS> $VerbosePreference = "Stop"
# Cambiar el valor a Stop.
PS> Write-Verbose "Prueba de mensaje detallado."
# Escribir un mensaje
detallado.
DETALLADO: Prueba de mensaje detallado.
Write-Verbose : Se detuvo la ejecución del comando porque la
variable de shell "VerbosePreference" está establecida en Stop.
En línea:1 carácter:14
+ Write-Verbose <<<< "Prueba de mensaje detallado."
PS> Write-Verbose "Prueba de mensaje detallado." -verbose:$false
# Usar el parámetro Verbose
con el valor $false.
PS>
# No se muestra el mensaje.
En este ejemplo se muestra el efecto del valor Inquire.
PS> $VerbosePreference = "Inquire"
# Cambiar el valor a Inquire.
PS> Write-Verbose "Prueba de mensaje detallado."
DETALLADO: Prueba de mensaje detallado.
# Escribir un mensaje detallado.
Confirmar
¿Desea continuar con la operación?
[S] Sí [O] Sí a todo [I] Interrumpir comando [S] Suspender [?]
Ayuda (el valor predeterminado es "S"): s
PS>
PS> Write-Verbose "Prueba de mensaje detallado." -verbose:$false
# Usar el parámetro Verbose.
PS>
# No se muestra el mensaje.
$WarningPreference
------------------
Determina la forma en que Windows PowerShell responde 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 se puede modificar
este comportamiento cambiando el valor de $WarningPreference.
Asimismo, se puede usar el parámetro común WarningAction de
un cmdlet para determinar la forma en que Windows PowerShell
responde a las advertencias de un comando concreto. Para
obtener más información, escriba "get-help about_commonparameters".
Valores válidos:
Stop: se muestran el mensaje de advertencia y un
mensaje de error y, a continuación,
se detiene la ejecución.
Inquire: se muestra el mensaje de advertencia y,
a continuación, se pregunta al usuario si
desea continuar.
Continue se muestra el mensaje de advertencia y,
(valor después, continúa la ejecución.
predeterminado):
SilentlyContinue: no se muestra el mensaje de
advertencia. Continúa la ejecución.
EJEMPLOS
En estos ejemplos se muestra el efecto de los diferentes valores de
$WarningPreference y del uso del parámetro común WarningAction para
invalidar el valor de preferencia.
En este ejemplo se muestra el efecto del valor Continue, que es
el valor predeterminado.
PS> $WarningPreference # Obtener el valor actual.
Continue
# Escribir un mensaje de advertencia.
PS> Write-Warning "Esta acción puede eliminar datos."
ADVERTENCIA: Esta acción puede eliminar datos.
# Usar el parámetro WarningAction a fin de
# suprimir la advertencia para este comando.
PS> Write-Warning "Esta acción puede eliminar datos." -warningaction
silentlycontinue
En este ejemplo se muestra el efecto del valor SilentlyContinue.
PS> $WarningPreference = "SilentlyContinue"
# Cambiar el valor a SilentlyContinue.
PS> Write-Warning "Esta acción puede eliminar datos."
PS> # Escribir un mensaje de advertencia.
PS> Write-Warning "Esta acción puede eliminar datos." -warningaction stop
# Usar el parámetro WarningAction para
# que se detenga el
# procesamiento cuando este
# comando genere una advertencia.
ADVERTENCIA: Esta acción puede eliminar datos.
Write-Warning : Se detuvo la ejecución del comando porque
la variable de shell "WarningPreference" está establecida en Stop.
En línea:1 carácter:14
+ Write-Warning <<<< "Esta acción puede eliminar datos." -warningaction stop
En este ejemplo se muestra el efecto del valor Inquire.
PS> $WarningPreference = "Inquire"
# Cambiar el valor a Inquire.
PS> Write-Warning "Esta acción puede eliminar datos."
# Escribir un mensaje de advertencia.
ADVERTENCIA: Esta acción puede eliminar datos.
Confirmar
¿Desea continuar con la operación?
[S] Sí [O] Sí a todo [I] Interrumpir comando [S] Suspender
[?] Ayuda (el valor predeterminado es "S"): s
PS> Write-Warning "Esta acción puede eliminar datos."
-warningaction silentlycontinue
PS> # Usar el parámetro WarningAction para cambiar la
# respuesta a una advertencia para el comando actual.
En este ejemplo se muestra el efecto del valor Stop.
PS> $WarningPreference = "Stop"
# Cambiar el valor a Stop.
PS> Write-Warning "Esta acción puede eliminar datos."
# Escribir un mensaje de advertencia.
ADVERTENCIA: Esta acción puede eliminar datos.
Write-Warning : Se detuvo la ejecución del comando porque
la variable de shell "WarningPreference" está establecida
en Stop.
En línea:1 carácter:14
+ Write-Warning <<<< "Esta acción puede eliminar datos."
PS> Write-Warning "Esta acción puede eliminar datos."
-warningaction inquire
ADVERTENCIA: Esta acción puede eliminar datos.
Confirmar
¿Desea continuar con la operación?
[S] Sí [O] Sí a todo [I] Interrumpir comando [U] Suspender
[?] Ayuda (el valor predeterminado es "S"):
# Usar el parámetro WarningAction para cambiar la
# respuesta a una advertencia para el comando actual.
$WhatIfPreference
------------------
Determina si se habilita automáticamente WhatIf para cada
comando que lo admite. Cuando WhatIf está habilitado, el
cmdlet informa del efecto esperado del comando, pero no
ejecuta el comando.
Valores válidos:
0: WhatIf no se habilita automáticamente.
(valor predeterminado) Para habilitarlo manualmente, utilice el
parámetro WhatIf del comando.
1: WhatIf se habilita automáticamente en
cualquier comando que lo admita.
Se puede usar el comando WhatIf con el
valor False para deshabilitarlo
manualmente (WhatIf:$false).
EXPLICACIÓN DETALLADA
Cuando un cmdlet admite WhatIf, el cmdlet informa del efecto
esperado del comando, en lugar de ejecutar el comando. Por
ejemplo, en lugar de eliminar el archivo test.txt en
respuesta a un comando Remove-Item, Windows PowerShell
informa de lo que eliminaría. Un comando Get-Childitem
subsiguiente confirma que no se eliminó el archivo.
PS> remove-item test.txt
What if: Se está realizando la operación "Remove-Item"
en el destino "Item: C:\test.txt.
PS> get-childitem test.txt
Directorio: Microsoft.PowerShell.Core\FileSystem::C:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 29/7/2006 19:15 84 test.txt
EJEMPLOS
En estos ejemplos, se muestra el efecto de los diferentes valores de
$WhatIfPreference. También se muestra cómo usar el parámetro de
cmdlet WhatIf a fin de invalidar el valor de preferencia para un
comando concreto.
En este ejemplo, se muestra el efecto del valor predeterminado 0
(WhatIf no está habilitado).
PS> $whatifpreference
0 # Comprobar el valor actual.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Comprobar que el archivo existe.
PS> remove-item test.txt
PS> # Eliminar el archivo.
PS> get-childitem test.txt | format-list -property FullName
# Comprobar que el archivo se
ha eliminado.
Get-ChildItem : No se encuentra la ruta de acceso
'C:\test.txt' porque no existe.
En línea:1 carácter:14
+ get-childitem <<<< test.txt | format-list fullname
En este ejemplo, se muestra el efecto del parámetro WhatIf
cuando el valor de $WhatIfPreference es 0.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Comprobar que el archivo existe.
PS> remove-item test2.txt -whatif
What if: Se está realizando la operación "Quitar
archivo" en el destino "C:\test2.txt".
# Usar el parámetro WhatIf.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Comprobar que el archivo no
se ha eliminado.
En este ejemplo, se muestra el efecto del valor 1 (WhatIf está
habilitado). Cuando se usa Remove-Item para eliminar un cmdlet,
Remove-Item muestra la ruta de acceso al archivo que eliminaría,
pero no elimina el archivo.
PS> $whatifpreference = 1
PS> $whatifpreference
1 # Cambiar el valor.
PS> remove-item test.txt
What if: Se está realizando la operación "Quitar
archivo" en el destino "C:\test.txt".
# Intentar eliminar un archivo.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Comprobar que el archivo existe.
En este ejemplo, se muestra cómo eliminar un archivo cuando el
valor de $WhatIfPreference es 1. Se utiliza el parámetro WhatIf
con el valor $false.
PS> remove-item test.txt -whatif:$false
# Usar el parámetro WhatIf con
$false.
En este ejemplo, se muestra que algunos cmdlets admiten el
comportamiento de WhatIf mientras que otros no lo admiten. En
este ejemplo, donde 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. Se puede invalidar el comportamiento de WhatIf del comando
Stop-Process usando el parámetro WhatIf con el valor $false.
PS> $whatifpreference = 1
# Cambiar el valor a 1.
PS> get-process winword
# Se completa un comando Get-Process.
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
8 6324 15060 154 0.36 2312 WINWORD
PS> stop-process -name winword
What if: Se está realizando la operación "Stop-Process" en
el destino "WINWORD (2312)".
# Un comando Stop-Process utiliza
WhatIf.
PS> stop-process -name winword -whatif:$false
PS> # WhatIf:$false invalida la preferencia.
PS> get-process winword
Get-Process : No se encuentra ningún proceso con el nombre
'winword'. Compruebe el nombre del proceso y ejecute de
nuevo el cmdlet.
En línea:1 carácter:12
+ get-process <<<< winword
# Comprobar que el proceso se ha
detenido.
VEA TAMBIÉN
about_Automatic_Variables
about_CommonParameters
about_Environment_Variables
about_Profiles
about_Remote
about_Scopes
about_Variables