Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El 11 de noviembre de 2020 anunciamos la disponibilidad general de PowerShell 7.1. Basándonos en la base establecida en PowerShell 7.0, nuestros esfuerzos se centraron en cuestiones comunitarias e incluyen varias mejoras y soluciones. Estamos comprometidos a garantizar que PowerShell siga siendo una plataforma estable y con buen rendimiento.
PowerShell 7.1 incluye las siguientes funciones, actualizaciones y cambios de última hora.
- PSReadLine 2.1.0, que incluye IntelliSense Predictivo
- PowerShell 7.1 ha sido publicado en la Microsoft Store
- Paquetes de instaladores actualizados para nuevas versiones del sistema operativo con soporte para ARM64
- 4 nuevas características experimentales y 2 características experimentales promovidas al mercado principal
- Varios cambios de última hora para mejorar la usabilidad
Para obtener una lista completa de los cambios, consulte el CHANGELOG de
PSReadLine 2.1.0
PowerShell 7.1 también incluye PSReadLine 2.1.0. Esta versión incluye Predictive IntelliSense. Para más información sobre la función Predictive IntelliSense, consulta el anuncio en el blog de PowerShell.
Paquete de instalación de la Microsoft Store
PowerShell 7.1 ha sido publicado en la Microsoft Store. Puedes encontrar la versión de PowerShell en la web de Microsoft Store o en la aplicación Store de Windows.
Ventajas del paquete de Microsoft Store:
- Actualizaciones automáticas integradas en Windows
- Se integra con otros mecanismos de distribución de software como Intune y SCCM
Nota:
Ninguna configuración a nivel de sistema almacenada $PSHOME no puede modificarse. Esto incluye la configuración de WSMAN. Esto impide que las sesiones remotas se conecten a instalaciones basadas en el almacén de PowerShell. Se admiten las configuraciones de nivel de usuario y la comunicación remota de SSH.
Otros instaladores
Para más información up-tofecha sobre sistemas operativos compatibles y ciclo de vida de soporte, consulte el Ciclo de Vida de Soporte de PowerShell.
Consulta las instrucciones de instalación de tu sistema operativo preferido:
Además, PowerShell 7.1 soporta versiones ARM32 y ARM64 de Debian, Ubuntu y ARM64 Alpine Linux.
Aunque no está oficialmente soportado, la comunidad también ha proporcionado paquetes para Arch y Kali Linux.
Nota:
Debian 10+, CentOS 8+, Ubuntu 20.04, Alpine y Arm actualmente no soportan remotos de WinRM. Para detalles sobre cómo configurar el remoto basado en SSH, véase PowerShell Remoting sobre SSH.
Características experimentales
Para obtener más información sobre las características experimentales, vea Using Experimental Features.
Las siguientes características experimentales son ahora características principales en esta versión:
Las siguientes características experimentales se añadieron en esta versión:
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
- PowerShell 7.1 amplía esta función experimental para añadir el parámetro Runspace a todos
*-PSBreakpointlos cmdlets. El parámetro de Runspace especifica que un objeto Runspace interactúa con los puntos de interrupción en el espacio especificado.
- PowerShell 7.1 amplía esta función experimental para añadir el parámetro Runspace a todos
PSNativePSPathResolution - Esta función te permite pasar rutas de proveedor PowerShell a comandos nativos que no soportan la sintaxis de rutas PowerShell.
PSCultureInvariantReplaceOperator - Cuando el operando izquierdo en una
-replacesentencia de operador no es una cadena, ese operando se convierte en una cadena. Con la función activada, la conversión no utiliza la configuración de Cultura para la conversión de cadenas.PSSubsystemPluginModel sienta las bases para soportar futuros complementos Predictive IntelliSense.
Cambios y mejoras de ruptura
El comportamiento de comparación de cadenas cambió en .NET 5.0
PowerShell 7.1 está construido sobre .NET 5.0, que introdujo el siguiente cambio de ruptura:
A partir de .NET 5.0, las comparaciones de cadenas invariantes a cultura ignoran los caracteres de control que no son imprimibles.
Por ejemplo, las siguientes dos cadenas se consideran idénticas:
# Escape sequence "`a" is Ctrl-G or [char]7 'Food' -eq "Foo`ad"TrueCorrección
$?para que no esté$falsecuando el comando nativo escribe enstderr(#13395)Es común que los comandos nativos escriban sin
stderrintención de indicar un fallo. Con este cambio$?, solo se establece$falsecuando el comando nativo también tiene un código de salida distinto de cero. Este cambio no está relacionado con la característicaPSNotApplyErrorActionToStderrexperimental .No afectar
$ErrorActionPreferencestderrla salida de comandos nativos (#13361)Es común que los comandos nativos escriban sin
stderrintención de indicar un fallo. Con este cambio,stderrla salida sigue capturándose en objetos ErrorRecord , pero el tiempo de ejecución ya no se aplica$ErrorActionPreferencesi el ErrorRecord proviene de un comando nativo.Renombrar
-FromUnixTimea-UnixTimeSecondsONGet-Datepara permitir la entrada de tiempo Unix (#13084) (Gracias @aetos382!)El
-FromUnixTimeparámetro se añadió durante la versión 7.1-preview.2. El parámetro fue renombrado para ajustarse mejor al tipo de dato. Este parámetro toma un valor entero que representa en segundos desde el 1 de enero de 1970, 0:00:00.Este ejemplo convierte una hora Unix (representada por el número de segundos desde 1970-01-01 0:00:00) en Fecha.
Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AMPermitir que el parámetro especificado con nombre sea explícitamente reemplazado por el mismo que el splatting de la tabla hash (#13162)
Con este cambio, los parámetros nombrados del splatting se trasladan al final de la lista de parámetros para que queden vinculados después de que todos los parámetros nombrados explícitamente especificados estén vinculados. La vinculación de parámetros para funciones simples no genera un error cuando no se puede encontrar un parámetro especificado con nombre. Los parámetros desconocidos con nombre están ligados al
$argsparámetro de la función simple. Al mover el splatting al final de la lista de argumentos cambia el orden en que aparecen los parámetros en$args.Por ejemplo:
function SimpleTest { param( $Name, $Path ) "Name: $Name; Path: $Path; Args: $args" }En el comportamiento anterior, MyPath no está obligado a porque
-Pathes el tercer argumento en la lista de argumentos. ## Así que acaba metido en '$args' junto conBlah = "World"PS> $hash = @{ Name = "Hello"; Blah = "World" } PS> SimpleTest @hash "MyPath" Name: Hello; Path: ; Args: -Blah: World MyPathCon este cambio, los argumentos de
@hashse trasladan al final de la lista de argumentos. MyPath se convierte en el primer argumento de la lista, por lo que está vinculado a-Path.PS> SimpleTest @hash "MyPath" Name: Hello; Path: MyPath; Args: -Blah: WorldHaz que el parámetro
-Qualifierdel switch no sea posicional paraSplit-Path(#12960) (Gracias @yecril71pl!)Resuelve el directorio de trabajo como ruta literal para
Start-Processcuando no está especificado (#11946) (Gracias @NoMoreFood!)Haz que
-OutFileel parámetro en los comandos web funcione como-LiteralPath(#11701) (Gracias @iSazonov!)Corregir la vinculación de parámetros de cadena para
BigIntegerliterales numéricos (#11634) (Gracias @vexx32!)En Windows,
Start-Processcrea un entorno de procesos con todas las variables de la sesión actual, usando-UseNewEnvironmentcrea un nuevo entorno de proceso predeterminado (#10830) (Gracias @iSazonov!)No envolver el resultado return al
PSObjectconvertir aScriptBlocken un delegado (#10619)Cuando a
ScriptBlockse convierte en un tipo de delegado para usarse en el contexto de C#, envolver el resultado en aPSObjecttrae problemas innecesarios:- Cuando el valor se convierte al tipo de retorno de delegado, el
PSObjectesencialmente se desenrolla. Así que noPSObjectes necesario. - Cuando el tipo de retorno de delegado es
object, se envuelve en aPSObject, lo que dificulta trabajar con él en código C#.
Tras este cambio, el objeto devuelto es el objeto subyacente.
- Cuando el valor se convierte al tipo de retorno de delegado, el