Novedades de PowerShell 7.0What's New in PowerShell 7.0

PowerShell 7.0 es una edición de código abierto multiplataforma (Windows, macOS y Linux) de PowerShell, que se ha creado para administrar entornos heterogéneos y una nube híbrida.PowerShell 7.0 is an open-source, cross-platform (Windows, macOS, and Linux) edition of PowerShell, built to manage heterogeneous environments and hybrid cloud.

En esta versión presentamos una serie de características nuevas, entre las que se incluyen:In this release, we're introducing a number of new features, including:

  • Paralelización de canalización con ForEach-Object -ParallelPipeline parallelization with ForEach-Object -Parallel
  • Nuevos operadores:New operators:
    • Operador ternario: a ? b : cTernary operator: a ? b : c
    • Operadores de cadena de canalización: || y &&Pipeline chain operators: || and &&
    • Operadores condicionales nulos: ?? y ??=Null conditional operators: ?? and ??=
  • Una vista de error simplificada y dinámica y Get-Error cmdlet para facilitar la investigación de erroresA simplified and dynamic error view and Get-Error cmdlet for easier investigation of errors
  • Una capa de compatibilidad que permite a los usuarios importar módulos en una sesión de Windows PowerShell implícitaA compatibility layer that enables users to import modules in an implicit Windows PowerShell session
  • Notificaciones de nueva versión automáticasAutomatic new version notifications
  • La capacidad de invocar recursos de DSC directamente desde PowerShell 7 (experimental)The ability to invoke DSC resources directly from PowerShell 7 (experimental)

Para ver una lista completa de las características y correcciones, consulte changelogs.To see a full list of features and fixes, see the changelogs.

¿Dónde puedo instalar PowerShell?Where can I install PowerShell?

PowerShell 7 admite actualmente los siguientes sistemas operativos en x64, a saber:PowerShell 7 currently supports the following operating systems on x64, including:

  • Windows 8.1 y 10Windows 8.1, and 10
  • Windows Server 2012, 2012 R2, 2016 y 2019Windows Server 2012, 2012 R2, 2016, and 2019
  • macOS 10.13+macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Fedora 30+Fedora 30+
  • Debian 9Debian 9
  • Ubuntu LTS 16.04+Ubuntu LTS 16.04+
  • Alpine Linux 3.8+Alpine Linux 3.8+

Además, PowerShell 7.0 admite los tipos ARM32 y ARM64 de Debian, Ubuntu y ARM64 Alpine Linux.Additionally, PowerShell 7.0 supports ARM32 and ARM64 flavors of Debian, Ubuntu, and ARM64 Alpine Linux.

Consulte las instrucciones de instalación del sistema operativo preferido Windows, macOSo Linux.Check the installation instructions for your preferred operating system Windows, macOS, or Linux.

Aunque no se admite oficialmente, la comunidad también ha proporcionado paquetes para Arch y Kali Linux.While not officially supported, the community has also provided packages for Arch and Kali Linux.

Nota

En la actualidad, Debian 10 y CentOS 8 no admiten la comunicación remota de WinRM.Debian 10 and CentOS 8 currently do not support WinRM remoting. Para más información sobre cómo configurar la comunicación remota basada en SSH, consulte Comunicación remota de PowerShell a través de SSH.For details on setting up SSH-based remoting, see PowerShell Remoting over SSH.

Para más información actualizada sobre los sistemas operativos compatibles y el ciclo de vida de soporte técnico, consulte Ciclo de vida de soporte técnico de PowerShell Core.For more up-to-date information about supported operating systems and support lifecycle, see the PowerShell Support Lifecycle.

Ejecución de PowerShell 7Running PowerShell 7

PowerShell 7 se instala en un directorio separado de Windows PowerShell.PowerShell 7 installs to a directory seperately from Windows PowerShell. Esto permite ejecutar PowerShell 7 en paralelo con Windows PowerShell 5.1.This enables you to run PowerShell 7 side-by-side with Windows PowerShell 5.1. Para PowerShell Core 6. x, PowerShell 7 es una actualización local que quita PowerShell Core 6.x.For PowerShell Core 6.x, PowerShell 7 is an in-place upgrade that removes PowerShell Core 6.x.

  • PowerShell 7 se instala en %programfiles%\PowerShell\7PowerShell 7 is installed to %programfiles%\PowerShell\7
  • La carpeta %programfiles%\PowerShell\7 se agrega a $env:PATHThe %programfiles%\PowerShell\7 folder is added to $env:PATH

Los paquetes del instalador de PowerShell 7 actualizan las versiones anteriores de PowerShell Core 6.x:The PowerShell 7 installer package upgrades previous versions of PowerShell Core 6.x:

  • PowerShell Core 6.x en Windows: %programfiles%\PowerShell\6 se reemplaza por %programfiles%\PowerShell\7PowerShell Core 6.x on Windows: %programfiles%\PowerShell\6 is replaced by %programfiles%\PowerShell\7
  • Linux: /opt/microsoft/powershell/6 se reemplaza por /opt/microsoft/powershell/7Linux: /opt/microsoft/powershell/6 is replaced by /opt/microsoft/powershell/7
  • macOS: /usr/local/microsoft/powershell/6 se reemplaza por /usr/local/microsoft/powershell/7macOS: /usr/local/microsoft/powershell/6 is replaced by /usr/local/microsoft/powershell/7

Nota

En Windows PowerShell, el archivo ejecutable para iniciar PowerShell se denomina powershell.exe.In Windows PowerShell, the executable to launch PowerShell is named powershell.exe. En la versión 6 y posteriores, el nombre del ejecutable se cambia para admitir la ejecución en paralelo.In version 6 and above, the executable name is changed to support side-by-side execution. El nuevo nombre del ejecutable para iniciar PowerShell 7 es pwsh.exe.The new executable name to launch PowerShell 7 is pwsh.exe. Las compilaciones de versión preliminar permanecen en su lugar como pwsh-preview en lugar de pwsh en el directorio de la versión preliminar 7.Preview builds remain in-place as pwsh-preview instead of pwsh under the 7-preview directory.

Compatibilidad con versiones anteriores mejoradas con Windows PowerShellImproved backwards compatibility with Windows PowerShell

PowerShell 7.0 marca un movimiento a .NET Core 3.1, lo que permite una mayor compatibilidad con versiones anteriores con los módulos de Windows PowerShell existentes.PowerShell 7.0 marks a move a to .NET Core 3.1, enabling significantly more backwards compatibility with existing Windows PowerShell modules. Esto incluye muchos módulos en Windows que requieren funcionalidad de GUI como Out-GridView y Show-Command, así como muchos módulos de administración de roles que se suministran como parte de Windows.This includes many modules on Windows that require GUI functionality like Out-GridView and Show-Command, as well as many role management modules that ship as part of Windows.

En Windows, se agrega un nuevo parámetro de modificador UseWindowsPowerShell a Import-Module.For Windows, a new switch parameter UseWindowsPowerShell is added to Import-Module. Este modificador crea un módulo de proxy en PowerShell 7 que usa un proceso local de Windows PowerShell para ejecutar implícitamente los cmdlets contenidos en ese módulo.This switch creates a proxy module in PowerShell 7 that uses a local Windows PowerShell process to implicitly run any cmdlets contained in that module. Para más información, consulte Import-Module.For more information on Import-Module.

Para más información sobre qué módulos de Microsoft funcionan con PowerShell 7.0, vea la tabla de compatibilidad de módulos.For more information on which Microsoft modules work with PowerShell 7.0, see the Module Compatibility Table.

Ejecución en paralelo agregada a ForEach-ObjectParallel execution added to ForEach-Object

El cmdlet ForEach-Object, que itera los elementos de una colección, ahora tiene un paralelismo integrado con el nuevo parámetro Parallel.The ForEach-Object cmdlet, which iterates items in a collection, now has built-in parallelism with the new Parallel parameter.

De forma predeterminada, los bloques de script paralelos usan el directorio de trabajo actual del autor de la llamada que inició las tareas paralelas.By default, parallel script blocks use the current working directory of the caller that started the parallel tasks.

En este ejemplo se recuperan 50 000 entradas de registro de cinco registros del sistema en una máquina local Windows:This example retrieves 50,000 log entries from 5 system logs on a local Windows machine:

$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'

$logEntries = $logNames | ForEach-Object -Parallel {
    Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5

$logEntries.Count

50000

El parámetro Parallel especifica el bloque de script que se ejecuta en paralelo para cada nombre de registro de entrada.The Parallel parameter specifies the script block that is run in parallel for each input log name.

El nuevo parámetro ThrottleLimit limita el número de bloques de scripts que se ejecutan en paralelo en un momento dado.The new ThrottleLimit parameter limits the number of script blocks running in parallel at a given time. El valor predeterminado es 5.The default is 5.

Use la variable $_ para representar el objeto de entrada actual en el bloque de scripts.Use the $_ variable to represent the current input object in the script block. Utilice el ámbito $using: para pasar las referencias de variable al bloque de script en ejecución.Use the $using: scope to pass variable references to the running script block.

Para más información, consulte ForEach-Object.For more information about ForEach-Object.

Operador ternarioTernary operator

PowerShell 7.0 introduce un operador ternario que se comporta como una instrucción if-else simplificada.PowerShell 7.0 introduces a ternary operator which behaves like a simplified if-else statement. El operador ternario de PowerShell se modela con bastante detalle a partir de la sintaxis de operador ternario de C#:PowerShell's ternary operator is closely modeled from the C# ternary operator syntax:

<condition> ? <if-true> : <if-false>

La expresión de la condición siempre se evalúa y su resultado se convierte en un valor booleano para determinar qué rama se evalúa a continuación:The condition-expression is always evaluated and its result converted to a Boolean to determine which branch is evaluated next:

  • La expresión <if-true> se ejecuta si la expresión de <condition> es trueThe <if-true> expression is executed if the <condition> expression is true
  • La expresión <if-false> se ejecuta si la expresión de <condition> es falseThe <if-false> expression is executed if the <condition> expression is false

Por ejemplo:For example:

$message = (Test-Path $path) ? "Path exists" : "Path not found"

En este ejemplo, si la ruta de acceso existe, se muestra el mensaje La ruta existe.In this example, if the path exists, then Path exists is displayed. Si la ruta de acceso no existe, se muestra el mensaje Ruta no encontrada.If the path does not exist, then Path not found is displayed.

Para más información, consulte Acerca de If.For more information About If.

Operadores de cadena de canalizaciónPipeline chain operators

PowerShell 7 implementa los operadores && y || para encadenar las canalizaciones de forma condicional.PowerShell 7 implements the && and || operators to conditionally chain pipelines. Estos operadores se conocen en PowerShell como "operadores de cadena de canalización" y son similares a las listas Y y O de los shells como Bash y Zsh, así como los símbolos de procesamiento condicional en el shell de comandos de Windows (cmd. exe).These operators are known in PowerShell as "pipeline chain operators", and are similar to AND and OR lists in shells like Bash and Zsh, as well as conditional processing symbols in the Windows Command Shell (cmd.exe).

El operador && ejecuta la canalización derecha, si la canalización izquierda se ha realizado correctamente.The && operator executes the right-hand pipeline, if the left-hand pipeline succeeded. Por el contario, el operador || ejecuta la canalización derecha, si la canalización izquierda no se ha realizado correctamente.Conversely, the || operator executes the right-hand pipeline if the left-hand pipeline failed.

Nota

Estos operadores usan las variables $? y $LASTEXITCODE para determinar si se produjo un error en una canalización.These operators use the $? and $LASTEXITCODE variables to determine if a pipeline failed. Esto le permite usarlas con comandos nativos y no solo con cmdlets o funciones.This allows you to use them with native commands and not just with cmdlets or functions.

Aquí, el primer comando se ejecuta correctamente y el segundo comando se ejecuta:Here, the first command succeeds and the second command is executed:

Write-Output 'First' && Write-Output 'Second'
First
Second

Aquí, el primer comando da error y el segundo no se ejecuta:Here, the first command fails, the second is not executed:

Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

Aquí, el primer comando se ejecuta correctamente y el segundo no se ejecuta:Here, the first command succeeds, the second command is not executed:

Write-Output 'First' || Write-Output 'Second'
First

Aquí, el primer comando da error y el segundo se ejecuta:Here, the first command fails, so the second command is executed:

Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second

Para más información, consulte Acerca de operadores de cadena de canalización.For more information About Pipeline Chain Operators.

Operadores condicionales, de asignación y de fusión de NULLNull-coalescing, assignment, and conditional operators

PowerShell 7 incluye el operador de fusión de NULL ??, el operador de asignación condicional NULL ??= y el operador de acceso a miembro condicional NULL ?. y ?[].PowerShell 7 includes Null coalescing operator ??, Null conditional assignment ??=, and Null conditional member access operators ?. and ?[].

Operador de fusión de NULL ??Null-coalescing Operator ??

El operador de fusión de NULL ?? devuelve el valor de su operando de la izquierda si no es NULL.The null-coalescing operator ?? returns the value of its left-hand operand if it isn't null. De lo contrario, evalúa el operando de la derecha y devuelve su resultado.Otherwise, it evaluates the right-hand operand and returns its result. El operador ?? no evalúa su operando de la derecha si el operando de la izquierda se evalúa como no NULL.The ?? operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ?? 100
100

En el ejemplo siguiente, el operando de la derecha no se evaluará:In the following example, the right-hand operand won't be evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020

Operador de asignación condicional NULL ??=Null conditional assignment operator ??=

El operador de asignación condicional NULL ??= asigna el valor del operando de la derecha a su operando de la izquierda solo si este último se evalúa como NULL.The null conditional assignment operator ??= assigns the value of its right-hand operand to its left-hand operand only if the left-hand operand evaluates to null. El operador ??= no evalúa su operando de la derecha si el operando de la izquierda se evalúa como no NULL.The ??= operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ??= 100
$x
100

En el ejemplo siguiente, el operando de la derecha no se evalúa:In the following example, the right-hand operand is not evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020

Operadores de acceso a miembro condicional NULL ?.Null conditional member access operators ?. y ?[] (experimental)and ?[] (Experimental)

Nota

Se trata de una característica experimental denominada PSNullConditionalOperators.This is an experimental feature named PSNullConditionalOperators. Más información acerca de las características experimentales.Learn more About Experimental Features.

Un operador condicional NULL permite el acceso a miembros, ?., o el acceso a elementos, ?[], a su operando solo si ese operando se evalúa como no NULL; de lo contrario, devuelve NULL.A null conditional operator permits member access, ?., or element access, ?[], to its operand only if that operand evaluates to non-null; otherwise, it returns null.

Nota

Puesto que PowerShell permite que ? forme parte del nombre de la variable, se requiere la especificación formal del nombre de la variable para utilizar estos operadores.Since PowerShell allows ? to be part of the variable name, formal specification of the variable name is required for using these operators. Por lo tanto, es necesario usar {} en torno a los nombres de variable como ${a} o cuando ? forma parte del nombre de la variable ${a?}.So it is required to use {} around the variable names like ${a} or when ? is part of the variable name ${a?}.

En el ejemplo siguiente, se devuelve el valor de la propiedad de miembro Status:In the following example, the value of the member property Status is returned:

$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped

En el ejemplo siguiente se devuelve NULL sin intentar acceder al nombre de miembro Status:The following example returns null, without trying to access the member name Status:

$service = $Null
${Service}?.status

De forma parecida, si se usa ?[], se devuelve el valor del elemento:Similarly, using ?[], the value of the element is returned:

$a = 1..10
${a}?[0]
1

Y cuando el operando es NULL, no se accede al elemento y se devuelve NULL:And when the operand is null, the element isn't accessed and null is returned:

$a = $null
${a}?[0]

Para más información, consulte Acerca de los operadores.For more information About_Operators.

Nueva vista ConciseView y cmdlet Get-ErrorNew view ConciseView and cmdlet Get-Error

PowerShell 7.0 mejora la visualización de los mensajes de error para aumentar la legibilidad de los errores interactivos y de script con una nueva vista predeterminada, ConciseView.PowerShell 7.0 enhances the display of error messages to improve the readability of interactive and script errors with a new default view ConciseView. Las vistas las puede seleccionar el usuario a través de la variable de preferencia $ErrorView.The views are user-selectable through the preference variable $ErrorView.

Con ConciseView, si no se trata de un error de script o de analizador, se trata de un mensaje de error de una sola línea:With ConciseView, if an error is not from a script or parser error, then it's a single line error message:

Get-Childitem -Path c:\NotReal
Get-ChildItem: Cannot find path 'C:\NotReal' because it does not exist

Si el error se produce durante la ejecución del script o es un error de análisis, PowerShell devuelve un mensaje de error de varias líneas que contiene el error, un puntero y un mensaje de error que muestra dónde se encuentra el error en esa línea.If the error occurs during script execution or is a parsing error, PowerShell returns a multiline error message that contains the error, a pointer and error message showing where the error is in that line. Si el terminal no es compatible con las secuencias de escape de color ANSI (VT100), no se muestran los colores.If the terminal doesn't support ANSI color escape sequences (VT100), then colors are not displayed.

Visualización de errores desde un script

La vista predeterminada de PowerShell 7 es ConciseView.The default view in PowerShell 7 is ConciseView. La vista predeterminada anterior era NormalView; para seleccionarla, el usuario puede establecer la variable de preferencia $ErrorView.The previous default view was NormalView and you can select thisby setting the preference variable $ErrorView.

$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView

Nota

Se agrega una nueva propiedad ErrorAccentColor a $Host.PrivateData para admitir el cambio del color de énfasis del mensaje de error.A new property ErrorAccentColor is added to $Host.PrivateData to support changing the accent color of the error message.

Un nuevo cmdlet Get-Error proporciona una vista detallada del error completo cuando se solicite.A new cmdlet Get-Error provides a complete detailed view of the fully qualified error when desired. De forma predeterminada, el cmdlet muestra todos los detalles, incluidas las excepciones internas, del último error que se produjo.By default the cmdlet displays the full details, including inner exceptions, of the last error that occurred.

Mostrar desde Get-error

El cmdlet Get-Error admite la entrada desde la canalización mediante la variable $Error integrada.The Get-Error cmdlet supports input from the pipeline using the built-in variable $Error. Get-Error muestra todos los errores canalizados.Get-Error displays all piped errors.

$Error | Get-Error

El cmdlet Get-Error admite el parámetro Newest, lo que le permite especificar el número de errores de la sesión actual que desea mostrar.The Get-Error cmdlet supports the Newest parameter, allowing you to specify how many errors from the current session you wish displayed.

Get-Error -Newest 3 # Displays the lst three errors that occurred in the session

Para más información, consulte Get-Error.For more information about Get-Error.

Notificación de nueva versiónNew version notification

PowerShell 7 usa notificaciones de actualización para alertar a los usuarios de la existencia de actualizaciones de PowerShell.PowerShell 7 uses update notifications to alert users to the existence of updates to PowerShell. Una vez al día, PowerShell consulta un servicio en línea para determinar si hay disponible una versión más reciente.Once per day, PowerShell queries an online service to determine if a newer version is available.

Nota

La comprobación de la actualización tiene lugar durante la primera sesión en un período de 24 horas determinado.The update check happens during the first session in a given 24-hour period. Por motivos de rendimiento, la comprobación de actualizaciones se inicia 3 segundos después de que lo haga la sesión.For performance reasons, the update check starts 3 seconds after the session begins. La notificación solo se muestra en el inicio de sesiones posteriores.The notification is shown only on the start of subsequent sessions.

De forma predeterminada, PowerShell se suscribe a uno de dos canales de notificación diferentes, en función de su versión o rama.By default, PowerShell subscribes to one of two different notification channels depending on its version/branch. Las versiones de disponibilidad general (GA) y admitidas de PowerShell solo devuelven notificaciones para las versiones de disponibilidad general actualizadas.Supported, Generally Available (GA) versions of PowerShell only return notifications for updated GA releases. Las versiones preliminares y candidatas para lanzamiento (RC) notifican las actualizaciones de versiones preliminares, RC y GA.Preview and Release Candidate (RC) releases notify of updates to preview, RC, and GA releases.

El comportamiento de las notificaciones de actualización se puede cambiar mediante la variable de entorno $Env:POWERSHELL_UPDATECHECK.The update notification behavior can be changed using the $Env:POWERSHELL_UPDATECHECK environment variable. Se admiten los valores siguientes:The following values are supported:

  • Default es el mismo que no definir $Env:POWERSHELL_UPDATECHECKDefault is the same as not defining $Env:POWERSHELL_UPDATECHECK
    • Las versiones de disponibilidad general notifican las actualizaciones de dichas versionesGA releases notify of updates to GA releases
    • Las versiones preliminares y RC notifican las actualizaciones de GA y las versiones de versión preliminarPreview/RC releases notify of updates to GA and preview releases
  • Off desactiva la característica de notificación de actualizaciónOff turns off the update notification feature
  • LTS solo informa de las actualizaciones de las versiones de disponibilidad general de mantenimiento a largo plazo (LTS)LTS only notifies of updates to long-term-servicing (LTS) GA releases

Nota

La variable de entorno $Env:POWERSHELL_UPDATECHECK no existe hasta que se establece por primera vez.The environment variable $Env:POWERSHELL_UPDATECHECK does not exist until it is set for the first time.

Para establecer la notificación de versión solo para las versiones LTS:To set the version notification for LTS releases only:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

Para establecer la notificación de versión en el comportamiento Default:To set the version notification to the Default behavior:

$Env:POWERSHELL_UPDATECHECK = 'Default'

Para más información, consulte Acerca de las notificaciones de actualización.For more information About Update Notifications.

Nueva compatibilidad de recursos de DSC con Invoke-DSCResource (experimental)New DSC Resource support with Invoke-DSCResource (Experimental)

Nota

Se trata de una característica experimental denominada PSDesiredStateConfiguration.InvokeDscResource.This is an experimental feature named PSDesiredStateConfiguration.InvokeDscResource. Más información acerca de las características experimentales.Learn more About Experimental Features.

El cmdlet Invoke-DscResource ejecuta un método de un recurso de Desired State Configuration (DSC) de PowerShell especificado.The Invoke-DscResource cmdlet runs a method of a specified PowerShell Desired State Configuration (DSC) resource.

Este cmdlet invoca un recurso de DSC directamente, sin crear un documento de configuración.This cmdlet invokes a DSC resource directly, without creating a configuration document. Con este cmdlet, los productos de administración de configuración pueden administrar Windows o Linux mediante recursos de DSC.Using this cmdlet, configuration management products can manage Windows or Linux by using DSC resources. Este cmdlet también habilita la depuración de recursos cuando el motor de DSC se está ejecutando con la depuración habilitada.This cmdlet also enables debugging of resources when the DSC engine is running with debugging enabled.

Este comando invoca el método Set de un recurso denominado WindowsProcess, y proporciona la ruta de acceso obligatoria (Path) y las propiedades de los argumentos (Arguments) para iniciar el proceso de Windows especificado.This command invokes the Set method of a resource named WindowsProcess and provides the mandatory Path and Arguments properties to start the specified Windows process.

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
  Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
  Arguments = ''
}

Para más información sobre Invoke-DSCResource.For more information about Invoke-DSCResource.

Últimos cambios y mejorasBreaking Changes and Improvements

Últimos cambiosBreaking Changes

  • Crear LTS para compatibilidad con notificaciones de actualización y los canales predeterminados (n.º 11132)Make update notification support LTS and default channels (#11132)
  • Actualizar Test-Connection para que funcione más como el de Windows PowerShell (n.º 10697) (¡gracias @vexx32!)Update Test-Connection to work more like the one in Windows PowerShell (#10697) (Thanks @vexx32!)
  • Conservar $?Preserve $? para ParenExpression, SubExpression y ArrayExpression (n.º 11040)for ParenExpression, SubExpression and ArrayExpression (#11040)
  • Establecer el directorio de trabajo en el directorio actual en Start-Job (n.º 10920) (¡gracias @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Hacer que $PSCulture refleje de forma coherente los cambios en la referencia cultural en la sesión (n.º 10138) (¡gracias @iSazonov!)Make $PSCulture consistently reflect in-session culture changes (#10138) (Thanks @iSazonov!)

Actualizaciones y correcciones del motorEngine Updates and Fixes

  • Mejoras en las API de punto de interrupción para escenarios remotos (n.º 11312)Improvements in breakpoint APIs for remote scenarios (#11312)
  • Corregir la pérdida de definiciones de clase de PowerShell en otro espacio de ejecución (n.º 11273)Fix PowerShell class definition leaking into another Runspace (#11273)
  • Corregir una regresión en el formato causada por la primitiva FirstOrDefault agregada en 7.0.0-Preview1 (n.º 11258)Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 (#11258)
  • Módulos adicionales de Microsoft para realizar el seguimiento en la telemetría de PS7 (n.º 10751)Additional Microsoft Modules to track in PS7 Telemetry (#10751)
  • Hacer que las características aprobadas no sean experimentales (n.º 11303)Make approved features non-experimental (#11303)
  • Actualizar ConciseView para usar TargetObject si es aplicable (n.º 11075)Update ConciseView to use TargetObject if applicable (#11075)
  • Corregir NullReferenceException en métodos públicos de CompletionCompleters (n.º 11274)Fix NullReferenceException in CompletionCompleters public methods (#11274)
  • Corregir la comprobación de estado de subprocesos de apartamento en plataformas que no son de Windows (n.º 11301)Fix apartment thread state check on non-Windows platforms (#11301)
  • Actualizar el valor de PSModulePath para concatenar las variables de entorno de proceso y máquina (n.º 11276)Update setting PSModulePath to concatenate the process and machine environment variables (#11276)
  • Incrementar la versión de .NET Core a 3.1.0 (n.º 11260)Bump .NET Core to 3.1.0 (#11260)
  • Corregir la detección de $PSHOME delante de $env:PATH (n.º 11141)Fix detection of $PSHOME in front of $env:PATH (#11141)
  • Permitir a pwsh heredar $env:PSModulePath y habilitar PowerShell.exe para que se inicie correctamente (n.º 11057)Allow pwsh to inherit $env:PSModulePath and enable powershell.exe to start correctly (#11057)
  • Pasar a .NET Core 3.1 Preview 1 (10798)Move to .NET Core 3.1 preview 1 (#10798)
  • Refactorizar comprobaciones de etiquetas de reanálisis en el proveedor del sistema de archivos (n.º 10431) (¡gracias @iSazonov!)Refactor reparse tag checks in file system provider (#10431) (Thanks @iSazonov!)
  • Reemplazar CR y nueva línea por un carácter 0x23CE en el registro de scripts (n.º 10616)Replace CR and new line with a 0x23CE character in script logging (#10616)
  • Corregir una pérdida de recursos al anular el registro del controlador de eventos de AppDomain.CurrentDomain.ProcessExit (n.º 10626)Fix a resource leak by unregistering the event handler from AppDomain.CurrentDomain.ProcessExit (#10626)
  • Agregar compatibilidad a ActionPreference.Break para interrumpir el depurador cuando se generan mensajes de depuración, error, información, progreso, detallados o advertencia (#8205) (¡gracias @KirkMunro!)Add support to ActionPreference.Break to break into debugger when Debug, Error, Information, Progress, Verbose or Warning messages are generated (#8205) (Thanks @KirkMunro!)
  • Habilitar el inicio de complementos del panel de control dentro de PowerShell Core sin especificar la extensión .CPLEnable starting control panel add-ins within PowerShell Core without specifying .CPL extension. (n.º 9828)(#9828)
  • Compatibilidad con números negativos en el operador -split (#8960) (gracias a @ece-jacob-scott)Support negative numbers in -split operator (#8960) (Thanks @ece-jacob-scott!)

Actualizaciones y correcciones generales de cmdletGeneral Cmdlet Updates and Fixes

  • Corrección para el problema en Raspbian para establecer la fecha de los cambios de archivo en la característica experimental UnixStat (n.º 11313)Fix for issue on Raspbian for setting date of file changes in UnixStat Experimental Feature (#11313)
  • Agregar -AsPlainText a ConvertFrom-SecureString (n.º 11142)Add -AsPlainText to ConvertFrom-SecureString (#11142)
  • Se ha agregado la comprobación de la versión de WindowsPS para WinCompat (n.º 11148)Added WindowsPS version check for WinCompat (#11148)
  • Corregir la generación de informes de error en algunos escenarios de WinCompat (n.º 11259)Fix error-reporting in some WinCompat scenarios (#11259)
  • Agregar resolución binaria nativa (n.º 11032) (¡gracias @iSazonov!)Add native binary resolver (#11032) (Thanks @iSazonov!)
  • Actualiza el cálculo del ancho de carácter para respetar los caracteres CJK correctamente (n.º 11262)Update calculation of char width to respect CJK chars correctly (#11262)
  • Agregar Unblock-File para macOS (n.º 11137)Add Unblock-File for macOS (#11137)
  • Corregir la regresión en Get-PSCallStack (n.º 11210) (¡gracias @iSazonov!)Fix regression in Get-PSCallStack (#11210) (Thanks @iSazonov!)
  • Quitar la carga automática del módulo ScheduledJob al usar cmdlets de trabajo (n.º 11194)Remove autoloading of the ScheduledJob module when using Job cmdlets (#11194)
  • Agregar OutputType al cmdlet Get-Error y conservar los nombres de tipo originales (n.º 10856)Add OutputType to Get-Error cmdlet and preserve original typenames (#10856)
  • Corregir la referencia nula en la propiedad SupportsVirtualTerminal (n.º 11105)Fix null reference in SupportsVirtualTerminal property (#11105)
  • Agregar comprobación de límite en Get-WinEvent (n.º 10648) (¡gracias @iSazonov!)Add limit check in Get-WinEvent (#10648) (Thanks @iSazonov!)
  • Corregir del tiempo de ejecución de los comandos para que StopUpstreamCommandsException no se rellene en -ErrorVariable (n.º 10840)Fix command runtime so StopUpstreamCommandsException doesn't get populated in -ErrorVariable (#10840)
  • Establecer la codificación de salida en [Console]::OutputEncoding para los comandos nativos (n.º 10824)Set the output encoding to [Console]::OutputEncoding for native commands (#10824)
  • Compatibilidad con bloques de código de varias líneas en ejemplos (n.º 10776) (¡gracias @Greg-Smulko!)Support multi-line code blocks in examples (#10776) (Thanks @Greg-Smulko!)
  • Agregar el parámetro Culture al cmdlet Select-String (n.º 10943) (¡gracias @iSazonov!)Add Culture parameter to Select-String cmdlet (#10943) (Thanks @iSazonov!)
  • Corregir la ruta de acceso del directorio de trabajo Start-Job con la barra diagonal inversa final (n.º 11041)Fix Start-Job working directory path with trailing backslash (#11041)
  • ConvertFrom-Json: Desencapsular colecciones de forma predeterminada (n.º 10861) (¡gracias @danstur!)ConvertFrom-Json: Unwrap collections by default (#10861) (Thanks @danstur!)
  • Usar la tabla hash con distinción de mayúsculas y minúsculas para el cmdlet Group-Object con los modificadores -CaseSensitive y -AsHashtable (n.º 11030) (¡gracias @vexx32!)Use case-sensitive Hashtable for Group-Object cmdlet with -CaseSensitive and -AsHashtable switches (#11030) (Thanks @vexx32!)
  • Controlar la excepción si se produce un error en la enumeración de los archivos al volver a generar la ruta de acceso para tener el uso correcto de mayúsculas y minúsculas (n.º 11014)Handle exception if enumerating files fails when rebuilding path to have correct casing (#11014)
  • Corregir ConciseView para mostrar la actividad en lugar de myCommand (n.º 11007)Fix ConciseView to show Activity instead of myCommand (#11007)
  • Permitir que los cmdlets web omitan los estados de error HTTP (n.º 10466) (¡gracias @vdamewood!)Allow web cmdlets to ignore HTTP error statuses (#10466) (Thanks @vdamewood!)
  • Corregir la canalización de más de un CommandInfo a Get-Command (n.º 10929)Fix piping of more than one CommandInfo to Get-Command (#10929)
  • Volver a agregar el cmdlet Get-Counter para Windows (n.º 10933)Add back Get-Counter cmdlet for Windows (#10933)
  • Hacer que ConvertTo-Json trate [AutomationNull]::Value y [NullString]::Value como $null (n.º 10957)Make ConvertTo-Json treat [AutomationNull]::Value and [NullString]::Value as $null (#10957)
  • Quitar corchetes de la dirección IPv6 para la comunicación remota SSH (n.º 10968)Remove brackets from ipv6 address for SSH remoting (#10968)
  • Corregir el bloqueo si el comando enviado a pwsh es simplemente un espacio en blanco (n.º 10977)Fix crash if command sent to pwsh is just whitespace (#10977)
  • Se ha agregado Get-Clipboard y Set-Clipboard entre plataformas (n.º 10340)Added cross-platform Get-Clipboard and Set-Clipboard (#10340)
  • Corregir el establecimiento de la ruta de acceso original del objeto filesystem para que no tenga una barra diagonal final (n.º 10959)Fix setting original path of filesystem object to not have extra trailing slash (#10959)
  • Admitir $null para ConvertTo-JSON (n.º 10947)Support $null for ConvertTo-Json (#10947)
  • Volver a agregar el comando Out-Printer en Windows (n.º 10906)Add back Out-Printer command on Windows (#10906)
  • Corregir Start-Job -WorkingDirectory con espacio en blanco (n.º 10951)Fix Start-Job -WorkingDirectory with whitespace (#10951)
  • Devolver el valor predeterminado al obtener null para un valor en PSConfiguration.cs (nº 10963) (¡gracias @iSazonov!)Return default value when getting null for a setting in PSConfiguration.cs (#10963) (Thanks @iSazonov!)
  • Controlar la excepción de E/S como de no terminación (n.º 10950)Handle IO exception as non-terminating (#10950)
  • Agregue el ensamblado GraphicalHost para habilitar Out-GridView, Show-Command y Get-Help-ShowWindow (n.º 10899)Add GraphicalHost assembly to enable Out-GridView, Show-Command, and Get-Help -ShowWindow (#10899)
  • Tomar ComputerName a través de la canalización en Get-HotFix (n.º 10852) (¡gracias @kvprasoon!)Take ComputerName via pipeline in Get-HotFix (#10852) (Thanks @kvprasoon!)
  • Corregir la finalización con tabulación de los parámetros para que muestre los parámetros comunes como disponibles (n.º 10850)Fix tab completion for parameters so that it shows common parameters as available (#10850)
  • Corregir GetCorrectCasedPath () para comprobar primero si se devuelven las entradas de archivo del sistema antes de llamar a First() (n.º 10930)Fix GetCorrectCasedPath() to first check if any system file entries is returned before calling First() (#10930)
  • Establecer el directorio de trabajo en el directorio actual en Start-Job (n.º 10920) (¡gracias @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Cambiar TabExpansion2 para no requerir -CursorColumn y tratar como $InputScript.Length (n.º 10849)Change TabExpansion2 to not require -CursorColumn and treat as $InputScript.Length (#10849)
  • Identificador del caso en el que el host no puede devolver filas ni columnas de la pantalla (n.º 10938)Handle case where Host may not return Rows or Columns of screen (#10938)
  • Corregir el uso de colores de énfasis para hosts que no los admiten (n.º 10937)Fix use of accent colors for hosts that don't support them (#10937)
  • Volver a agregar el comando Update-List (n.º 10922)Add back Update-List command (#10922)
  • Actualizar el identificador de vínculos redireccionables para Clear-RecycleBin (n.º 10925)Update FWLink Id for Clear-RecycleBin (#10925)
  • Durante la finalización con tabulación, omitir el archivo si no puede leer los atributos de archivo (n.º 10910)During tab completion, skip file if can't read file attributes (#10910)
  • Volver a agregar Clear-RecycleBin para Windows (n.º 10909)Add back Clear-RecycleBin for Windows (#10909)
  • Agregar $env:__SuppressAnsiEscapeSequences para controlar si se debe incluir la secuencia de escape de VT en la salida (n.º 10814)Add $env:__SuppressAnsiEscapeSequences to control whether to have VT escape sequence in output (#10814)
  • Agregar el parámetro -NoEmphasize para colorear la salida Select-String (n.º 8963) (¡gracias @derek-xia!)Add -NoEmphasize parameter to colorize Select-String output (#8963) (Thanks @derek-xia!)
  • Volver a agregar el cmdlet Get-HotFix (n.º 10740)Add back Get-HotFix cmdlet (#10740)
  • Hacer que Add-Type se pueda usar en aplicaciones que hospedan PowerShell (n.º 10587)Make Add-Type usable in applications that host PowerShell (#10587)
  • Use un orden de evaluación más eficaz en LanguagePrimitives.IsNullLike () (n.º 10781) (¡gracias @vexx32!)Use more effective evaluation order in LanguagePrimitives.IsNullLike() (#10781) (Thanks @vexx32!)
  • Mejorar el control de la entrada canalizada de recopilación mixta y los flujos canalizados de entrada en Format-Hex (n.º 8674) (¡gracias @vexx32!)Improve handling of mixed-collection piped input and piped streams of input in Format-Hex (#8674) (Thanks @vexx32!)
  • Usar conversión de tipos en tablas hash de SSHConnection cuando el valor no coincide con el tipo esperado (n.º 10720) (¡gracias @SeeminglyScience!)Use type conversion in SSHConnection hashtables when value doesn't match expected type (#10720) (Thanks @SeeminglyScience!)
  • Corregir el comportamiento de Get-Content -ReadCount 0 cuando se establece -TotalCount (n.º 10749) (¡gracias @eugenesmlv!)Fix Get-Content -ReadCount 0 behavior when -TotalCount is set (#10749) (Thanks @eugenesmlv!)
  • Volver a redactar el mensaje de error de acceso denegado en Get-WinEvent (n.º 10639) (¡gracias @iSazonov!)Reword access denied error message in Get-WinEvent (#10639) (Thanks @iSazonov!)
  • Habilitar la finalización con tabulación para la asignación de variables que es una enumeración o tipo restringido (n.º 10646)Enable tab completion for variable assignment that is enum or type constrained (#10646)
  • Quitar la propiedad de comunicación remota de SourceLength sin usar que causa problemas de formato (n.º 10765)Remove unused SourceLength remoting property causing formatting issues (#10765)
  • Agregar el parámetro -Delimiter a ConvertFrom-StringData (n.º 10665) (¡gracias @steviecoaster!)Add -Delimiter parameter to ConvertFrom-StringData (#10665) (Thanks @steviecoaster!)
  • Agregar el parámetro posicional para ScriptBlock al usar Invoke-Command con SSH (n.º 10721) (¡gracias @machgo!)Add positional parameter for ScriptBlock when using Invoke-Command with SSH (#10721) (Thanks @machgo!)
  • Mostrar información de contexto de línea si hay varias líneas pero no un nombre de script para ConciseView (n.º 10746)Show line context information if multiple lines but no script name for ConciseView (#10746)
  • Agregar compatibilidad para rutas de acceso \wsl$\ al proveedor del sistema de archivos (n.º 10674)Add support for \wsl$\ paths to file system provider (#10674)
  • Agregar el texto de token que falta para TokenKind.QuestionMark en el analizador (n.º 10706)Add the missing token text for TokenKind.QuestionMark in parser (#10706)
  • Establecer el directorio de trabajo actual de cada script de ejecución ForEach-Object -Parallel en la misma ubicación que el script que realiza la llamadaSet current working directory of each ForEach-Object -Parallel running script to the same location as the calling script. (n.º 10672)(#10672)
  • Reemplazar api-ms-win-core-file-l1-2-2.dll por Kernell32.dll para las API FindFirstStreamW y FindNextStreamW (n.º 10680) (¡gracias @iSazonov!)Replace api-ms-win-core-file-l1-2-2.dll with Kernell32.dll for FindFirstStreamW and FindNextStreamW APIs (#10680) (Thanks @iSazonov!)
  • Ajustar el script de formato de ayuda para que sea más tolerante a StrictMode (n.º 10563)Tweak help formatting script to be more StrictMode tolerant (#10563)
  • Agregar el parámetro Add -SecurityDescriptorSDDL a New-Service (n.º 10483) (¡gracias @kvprasoon!)Add -SecurityDescriptorSDDL parameter to New-Service (#10483) (Thanks @kvprasoon!)
  • Quitar la salida de información, consolidar el uso de ping en Test-Connection (n.º 10478) (¡gracias @vexx32)Remove informational output, consolidate ping usage in Test-Connection (#10478) (Thanks @vexx32!)
  • Leer puntos especiales de reanálisis sin acceder a ellos (n.º 10662) (¡gracias @iSazonov!)Read special reparse points without accessing them (#10662) (Thanks @iSazonov!)
  • Salida directa de Clear-Host al terminal (n.º 10681) (¡gracias @iSazonov!)Direct Clear-Host output to terminal (#10681) (Thanks @iSazonov!)
  • Volver a agregar una nueva línea para la agrupación con Format-Table y -Property (n.º 10653)Add back newline for grouping with Format-Table and -Property (#10653)
  • Quitar [ValidateNotNullOrEmpty] de -InputObject en Get-Random para permitir una cadena vacía (n.º 10644)Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random to allow empty string (#10644)
  • Convertir el algoritmo de distancia de la cadena del sistema de sugerencias distinta entre mayúsculas y minúsculas (n.º 10549) (¡gracias @iSazonov!)Make suggestion system string distance algorithm case-insensitive (#10549) (Thanks @iSazonov!)
  • Corregir la excepción de referencia nula en el procesamiento de entrada ForEach-Object -Parallel (nº 10577)Fix null reference exception in ForEach-Object -Parallel input processing (#10577)
  • Agregar definiciones de directiva de grupo de PowerShell Core (n.º 10468)Add PowerShell Core group policy definitions (#10468)
  • Actualizar el host de la consola para que admita las secuencias de control VT XTPUSHSGR/XTPOPSGR que se usan en escenarios composiciónUpdate console host to support XTPUSHSGR/XTPOPSGR VT control sequences that are used in composability scenarios. (n.º 10208)(#10208)
  • Agregar el parámetro WorkingDirectory a Start-Job (n.º 10324) (¡gracias @davinci26!)Add WorkingDirectory parameter to Start-Job (#10324) (Thanks @davinci26!)
  • Quitar el controlador de eventos que hacía que los cambios de punto de interrupción se replicaran erróneamente en el depurador del espacio de ejecución del host (nº 10503) (¡gracias @KirkMunro!)Remove the event handler that was causing breakpoint changes to be erroneously replicated to the host runspace debugger (#10503) (Thanks @KirkMunro!)
  • Reemplazar api-ms-win-core-job-12-1-0.dll por Kernell32.dll en la API P/Invoke Microsoft.PowerShell.Commands.NativeMethods (n.º 10417) (¡gracias @iSazonov!)Replace api-ms-win-core-job-12-1-0.dll with Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Thanks @iSazonov!)
  • Corregir la salida incorrecta de New-Service en la asignación de variables y -OutVariable (nº 10444) (¡gracias @kvprasoon!)Fix wrong output for New-Service in variable assignment and -OutVariable (#10444) (Thanks @kvprasoon!)
  • Corregir problemas de herramientas globales en torno al código de salida, parámetros de línea de comandos y ruta de acceso con espacios (n.º 10461)Fix global tool issues around exit code, command line parameters and path with spaces (#10461)
  • Corregir la recursividad en OneDrive: cambiar FindFirstFileEx() para usar el tipo SafeFindHandle (n.º 10405)Fix recursion into OneDrive - change FindFirstFileEx() to use SafeFindHandle type (#10405)
  • Omitir la carga automática de PSReadLine en Windows si el lector de pantalla NVDA está activo (n.º 10385)Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385)
  • Aumentar las versiones del módulo de integradas con PowerShell a 7.0.0.0 (n.º 10356)Increase built-with-PowerShell module versions to 7.0.0.0 (#10356)
  • Agregar el inicio de un error en Add-Type si ya existe un tipo con el mismo nombre (n.º 9609) (¡gracias @iSazonov!)Add throwing an error in Add-Type if a type with the same name already exists (#9609) (Thanks @iSazonov!)

RendimientoPerformance

  • Evitar el uso del cierre en Parser.SaveError (nº 11006)Avoid using closure in Parser.SaveError (#11006)
  • Mejorar el almacenamiento en caché al crear nuevas instancias de Regex (n.º 10657) (¡gracias @iSazonov!)Improve the caching when creating new Regex instances (#10657) (Thanks @iSazonov!)
  • Mejorar el procesamiento de los datos de tipo integrados de PowerShell desde types.ps1xml, typesV3.ps1xml y GetEvent.types.ps1xml (n.º 10898)Improve processing of the PowerShell built-in type data from types.ps1xml, typesV3.ps1xml and GetEvent.types.ps1xml (#10898)
  • Actualizar PSConfiguration.ReadValueFromFile para que sea más rápido y más eficiente de memoria (n.º 10839)Update PSConfiguration.ReadValueFromFile to make it faster and more memory efficient (#10839)
  • Agregar mejoras de rendimiento menores para la inicialización del espacio de ejecución (nº 10569) (¡gracias @iSazonov!)Add minor performance improvements for runspace initialization (#10569) (Thanks @iSazonov!)
  • Hacer que ForEach-Object sea más rápido para sus escenarios de uso frecuente (n.º 10454) y corregir el problema de rendimiento de ForEach-Object-Parallel con muchos espacios de ejecución (n.º 10455)Make ForEach-Object faster for its commonly used scenarios (#10454) and fix ForEach-Object -Parallel performance problem with many runspaces (#10455)

Limpieza de códigoCode Cleanup

  • Cambiar el texto del comentario y del elemento para cumplir los estándares de Microsoft (n.º 11304)Change comment and element text to meet Microsoft standards (#11304)
  • Problemas de estilo de limpieza en Compiler.cs (n.º 10368) (¡gracias @iSazonov!)Cleanup style issues in Compiler.cs (#10368) (Thanks @iSazonov!)
  • Quitar el convertidor de tipos sin usar para CommaDelimitedStringCollection (n.º 11000) (¡gracias @iSazonov!)Remove the unused type converter for CommaDelimitedStringCollection (#11000) (Thanks @iSazonov!)
  • Estilo de limpieza en InitialSessionState.cs (n.º 10865) (¡gracias @iSazonov!)Cleanup style in InitialSessionState.cs (#10865) (Thanks @iSazonov!)
  • Limpieza de código para la clase PSSession (n.º 11001)Code clean up for PSSession class (#11001)
  • Quitar la característica "ejecutar Update-Help desde Get-Help cuando Get-Help se ejecuta por primera vez" que no funciona (n.º 10974)Remove the not-working 'run Update-Help from Get-Help when Get-Help runs for the first time' feature (#10974)
  • Corregir problemas de estilo (nº 10998) (¡gracias @iSazonov!)Fix style issues (#10998) (Thanks @iSazonov!)
  • Limpieza: Use el alias de tipo integrado (nº 10882) (¡gracias @iSazonov!)Cleanup: use the built-in type alias (#10882) (Thanks @iSazonov!)
  • Quitar la clave de configuración no usada ConsolePrompting y evitar la creación de cadenas innecesaria al consultar la configuración de ExecutionPolicy (n.º 10985)Remove the unused setting key ConsolePrompting and avoid unnecessary string creation when querying ExecutionPolicy setting (#10985)
  • Deshabilitar la comprobación de notificaciones de actualización para compilaciones diarias (n.º 10903) (¡gracias @bergmeister!)Disable update notification check for daily builds (#10903) (Thanks @bergmeister!)
  • Restablecer la API de depuración perdida en n.º 10338 (n.º 10808)Reinstate debugging API lost in #10338 (#10808)
  • Quitar la referencia de WorkflowJobSourceAdapter que ya no se usa (n.º 10326) (¡gracias @KirkMunro!)Remove WorkflowJobSourceAdapter reference that is no longer used (#10326) (Thanks @KirkMunro!)
  • Interfaces COM de limpieza en código de lista de salto corrigiendo atributos PreserveSig (n.º 9899) (¡gracias @weltkante!)Cleanup COM interfaces in jump list code by fixing PreserveSig attributes (#9899) (Thanks @weltkante!)
  • Agregar un comentario que describa por qué -ia no es el alias del parámetro común -InformationAction (n.º 10703) (¡gracias @KirkMunro!)Add a comment describing why -ia is not the alias for -InformationAction common parameter (#10703) (Thanks @KirkMunro!)
  • Cambiar el nombre de InvokeCommandCmdlet.cs a InvokeExpressionCommand.cs (nº 10659) (¡gracias @kilasuit!)Rename InvokeCommandCmdlet.cs to InvokeExpressionCommand.cs (#10659) (Thanks @kilasuit!)
  • Agregar limpiezas de código secundarias relacionadas con las notificaciones de actualización (n.º 10698)Add minor code cleanups related to update notifications (#10698)
  • Quitar la lógica de flujo de trabajo en desuso de los scripts de configuración de comunicación remota (n.º 10320) (¡gracias @KirkMunro!)Remove deprecated workflow logic from the remoting setup scripts (#10320) (Thanks @KirkMunro!)
  • Actualizar el formato de la ayuda para usar mayúsculas y minúsculas adecuadas (n.º 10678) (¡gracias @tnieto88!)Update help format to use proper case (#10678) (Thanks @tnieto88!)
  • Problemas de estilo de CodeFactor de limpieza que entrarán en las confirmaciones durante el último mes (n.º 10591) (¡gracias @iSazonov!)Clean up CodeFactor style issues coming in commits for the last month (#10591) (Thanks @iSazonov!)
  • Corrección de errores de escritura en la descripción de la característica experimental de PSTernaryOperator (nº 10586) (¡gracias @bergmeister!)Fix typo in description of PSTernaryOperator experimental feature (#10586) (Thanks @bergmeister!)
  • Convertir el valor de enumeración ActionPreference.Suspend en un estado reservado y no compatible y quitar la restricción al usar ActionPreference.Ignore en las variables de preferencia (n.º 10317) (¡gracias @KirkMunro!)Convert ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#10317) (Thanks @KirkMunro!)
  • Reemplazar ArrayList con List<T> para obtener código más legible y confiable sin cambiar la funcionalidad (n.º 10333) (¡gracias @iSazonov!)Replace ArrayList with List<T> to get more readable and reliable code without changing functionality (#10333) (Thanks @iSazonov!)
  • Crear correcciones de estilo de código para TestConnectionCommand (n.º 10439) (¡gracias @vexx32!)Make code style fixes to TestConnectionCommand (#10439) (Thanks @vexx32!)
  • Limpiar AutomationEngine y quitar la llamada de método SetSessionStateDrive adicional (n.º 10416) (¡gracias @iSazonov!)Cleanup AutomationEngine and remove extra SetSessionStateDrive method call (#10416) (Thanks @iSazonov!)
  • Volver a cambiar el nombre de ParameterSetName predeterminado a Delimitador para ConvertTo-Csv y ConvertFrom-Csv (n.º 10425)Rename default ParameterSetName back to Delimiter for ConvertTo-Csv and ConvertFrom-Csv (#10425)

HerramientasTools

  • Agregar la configuración predeterminada de la propiedad SDKToUse para que se compile en VS (n.º 11085)Add default setting for the SDKToUse property so that it builds in VS (#11085)
  • Install-Powershell.ps1: Agregar el parámetro para usar la instalación de MSI (n.º 10921) (¡gracias @MJECloud!)Install-Powershell.ps1: Add parameter to use MSI installation (#10921) (Thanks @MJECloud!)
  • Agregar ejemplos básicos para install-PowerShell.ps1 (n.º 10914) (¡gracias @kilasuit!)Add basic examples for install-powershell.ps1 (#10914) (Thanks @kilasuit!)
  • Crear una cadena vacía de identificador Install-PowerShellRemoting.ps1 en el parámetro PowerShellHome (n.º 10526) (¡gracias @Orca88!)Make Install-PowerShellRemoting.ps1 handle empty string in PowerShellHome parameter (#10526) (Thanks @Orca88!)
  • Cambiar de /etc/lsb-release a /etc/os-release en install-powershell.sh (n.º 10773) (¡gracias @Himura2la!)Switch from /etc/lsb-release to /etc/os-release in install-powershell.sh (#10773) (Thanks @Himura2la!)
  • Compruebe pwsh.exe y pwsh en la versión diaria en Windows (n.º 10738) (¡gracias @centreboard!)Check pwsh.exe and pwsh in daily version on Windows (#10738) (Thanks @centreboard!)
  • Quitar la pulsación innecesaria en installpsh-osx.sh (n.º 10752)Remove unneeded tap in installpsh-osx.sh (#10752)
  • Actualizar install-powershell.ps1 para comprobar la compilación diaria ya instalada (n.º 10489)Update install-powershell.ps1 to check for already installed daily build (#10489)

PruebasTests

  • Hacer que una prueba de DSC no confiable esté pendiente (n.º 11131)Make unreliable DSC test pending (#11131)
  • Corregir la prueba de stringdata para validar correctamente las claves de las tablas hash (n.º 10810)Fix stringdata test to correctly validate keys of hashtables (#10810)
  • Descargar módulos de prueba (n.º 11061) (¡gracias @iSazonov!)Unload test modules (#11061) (Thanks @iSazonov!)
  • Aumentar el tiempo entre reintentos de prueba de direcciones URL (n.º 11015)Increase time between retries of testing URL (#11015)
  • Actualizar las pruebas para describir con precisión las acciones de prueba.Update tests to accurately describe test actions. (n.º 10928) (¡gracias @romero126!)(#10928) (Thanks @romero126!)
  • Omitir temporalmente la prueba no confiable TestAppDomainProcessExitEvenHandlerNotLeaking (n.º 10827)Temporary skip the flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • Hacer que la prueba de pérdida de controlador de eventos sea estable (n.º 10790)Make the event handler leaking test stable (#10790)
  • Sincronizar el uso de mayúsculas y minúsculas en CI YAML (n.º 10767) (¡gracias @RDIL!)Sync capitalization in CI YAML (#10767) (Thanks @RDIL!)
  • Agregar prueba para la corrección de pérdida de controlador de eventos (n.º 10768)Add test for the event handler leaking fix (#10768)
  • Agregar prueba Get-ChildItem (n.º 10507) (¡gracias @iSazonov!)Add Get-ChildItem test (#10507) (Thanks @iSazonov!)
  • Reemplazar el idioma ambiguo para las pruebas de cambiar a parámetro para precisión (n.º 10666) (¡gracias @romero126!)Replace ambiguous language for tests from switch to parameter for accuracy (#10666) (Thanks @romero126!)
  • Agregue la comprobación experimental a las pruebas ForEach-Object -Parallel (n.º 10354) (¡gracias @KirkMunro!)Add experimental check to ForEach-Object -Parallel tests (#10354) (Thanks @KirkMunro!)
  • Actualizar pruebas para la validación de Alpine (n.º 10428)Update tests for Alpine validation (#10428)

Mejoras en las compilaciones y los paquetesBuild and Package Improvements

  • Corregir la firma de paquetes Nuget para la compilación de paquetes coordinada (n.º 11316)Fix Nuget package signing for Coordinated Package build (#11316)
  • Actualizar dependencias de la Galería de PowerShell y NuGet (n.º 11323)Update dependencies from PowerShell Gallery and NuGet (#11323)
  • Incrementar la versión de Microsoft.ApplicationInsights de 2.11.0 a 2.12.0 (#11305)Bump Microsoft.ApplicationInsights from 2.11.0 to 2.12.0 (#11305)
  • Incrementar la versión de Microsoft.CodeAnalysis.CSharp de 3.3.1 a 3.4.0 (n.º 11265)Bump Microsoft.CodeAnalysis.CSharp from 3.3.1 to 3.4.0 (#11265)
  • Actualiza los paquetes para Debian 10 y 11 (n.º 11236)Updates packages for Debian 10 and 11 (#11236)
  • Habilitar solo las características experimentales anteriores a RC (n.º 11162)Only enable experimental features prior to RC (#11162)
  • Actualizar la versión mínima de macOS (n.º 11163)Update macOS minimum version (#11163)
  • Incrementar la versión de NJsonSchema de 10.0.27 a 10.0.28 (nº 11170)Bump NJsonSchema from 10.0.27 to 10.0.28 (#11170)
  • Actualización de vínculos en README.md y metadata.JSON para Preview.5 (n.º 10854)Updating links in README.md and metadata.json for Preview.5 (#10854)
  • Seleccionar los archivos para las pruebas de cumplimiento que son propiedad de PowerShell (n.º 10837)Select the files for compliance tests which are owned by PowerShell (#10837)
  • Permitir compilar el paquete win7x86 msix.Allow win7x86 msix package to build. (interno 10515)(Internal 10515)
  • Permitir que las versiones semánticas se pasen a la función NormalizeVersion (n.º 11087)Allow semantic versions to be passed to NormalizeVersion function (#11087)
  • Incrementar la versión de .NET Core Framework a 3.1-preview.3 (n.º 11079)Bump .NET core framework to 3.1-preview.3 (#11079)
  • Incrementar la versión de PSReadLine de 2.0.0-beta5 a 2.0.0-beta6 en /src/Modules (n.º 11078)Bump PSReadLine from 2.0.0-beta5 to 2.0.0-beta6 in /src/Modules (#11078)
  • Incrementar la versión de Newtonsoft. JSON de 12.0.2 a 12.0.3 (n.º 11037) (n.º 11038)Bump Newtonsoft.Json from 12.0.2 to 12.0.3 (#11037) (#11038)
  • Agregar paquetes de Debian 10, 11 y CentOS 8 (n.º 11028)Add Debian 10, 11 and CentOS 8 packages (#11028)
  • Cargar el archivo Json Build-Info con el campo ReleaseDate (n.º 10986)Upload Build-Info Json file with the ReleaseDate field (#10986)
  • Incrementar la versión de .NET Core Framework a 3.1-preview.2 (n.º 10993)Bump .NET core framework to 3.1-preview.2 (#10993)
  • Habilitar la compilación del paquete MSIX x86 (n.º 10934)Enable build of x86 MSIX package (#10934)
  • Actualizar la dirección URL del script de instalación del SDK de dotnet en build.psm1 (n.º 10927)Update the dotnet SDK install script URL in build.psm1 (#10927)
  • Incrementar la versión de Markdig.Signed de 0.17.1 a 0.18.0 (n.º 10887)Bump Markdig.Signed from 0.17.1 to 0.18.0 (#10887)
  • Incrementar la versión de ThreadJob de 2.0.1 a 2.0.2 (n.º 10886)Bump ThreadJob from 2.0.1 to 2.0.2 (#10886)
  • Actualizar el manifiesto de AppX y el módulo de empaquetado para ajustarse a los requisitos de Microsoft Store (n.º 10878)Update AppX Manifest and Packaging module to conform to MS Store requirements (#10878)
  • Actualizar la referencia de paquete para el SDK de PowerShell a preview.5 (10295 interno)Update package reference for PowerShell SDK to preview.5 (Internal 10295)
  • Actualizar ThirdPartyNotices.txt (n.º 10834)Update ThirdPartyNotices.txt (#10834)
  • Incrementar la versión de Microsoft.PowerShell.Native a 7.0.0-preview.3 (n.º 10826)Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Incrementar la versión de Microsoft.ApplicationInsights de 2.10.0 a 2.11.0 (n.º 10608)Bump Microsoft.ApplicationInsights from 2.10.0 to 2.11.0 (#10608)
  • Incrementar la versión de NJsonSchema de 10.0.24 a 10.0.27 (n.º 10756)Bump NJsonSchema from 10.0.24 to 10.0.27 (#10756)
  • Agregar compatibilidad con MacPorts al sistema de compilación (n.º 10736) (¡gracias @Lucius-Q-User!)Add MacPorts support to the build system (#10736) (Thanks @Lucius-Q-User!)
  • Incrementar la versión de PackageManagement de 1.4.4 a 1.4.5 (n.º 10728)Bump PackageManagement from 1.4.4 to 1.4.5 (#10728)
  • Incrementar la versión de NJsonSchema de 10.0.23 a 10.0.24 (n.º 10635)Bump NJsonSchema from 10.0.23 to 10.0.24 (#10635)
  • Agregar una variable de entorno para diferenciar la telemetría de cliente/servidor en MSI (n.º 10612)Add environment variable to differentiate client/server telemetry in MSI (#10612)
  • Incrementar la versión de PSDesiredStateConfiguration de 2.0.3 a 2.0.4 (n.º 10603)Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
  • Incrementar la versión de Microsoft.CodeAnalysis.CSharp de 3.2.1 a 3.3.1 (n.º 10607)Bump Microsoft.CodeAnalysis.CSharp from 3.2.1 to 3.3.1 (#10607)
  • Actualizar a .Net Core 3.0 RTM (n.º 10604) (¡gracias @bergmeister!)Update to .Net Core 3.0 RTM (#10604) (Thanks @bergmeister!)
  • Actualizar el empaquetado MSIX a la versión de los requisitos de Windows Store (n.º 10588)Update MSIX packaging so the version to Windows Store requirements (#10588)
  • Incrementar la versión de PowerShellGet de 2.2 a 2.2.1 (n.º 10382)Bump PowerShellGet version from 2.2 to 2.2.1 (#10382)
  • Incrementar la versión de PackageManagement de 1.4.3 a 1.4.4 (n.º 10383)Bump PackageManagement version from 1.4.3 to 1.4.4 (#10383)
  • Actualizar README.md y metadata.json para 7.0.0-preview. 4 (10011 interno)Update README.md and metadata.json for 7.0.0-preview.4 (Internal 10011)
  • Actualizar la versión de .Net Core 3.0 de Preview 9 a RC1 (n.º 10552) (¡gracias @bergmeister!)Upgrade .Net Core 3.0 version from Preview 9 to RC1 (#10552) (Thanks @bergmeister!)
  • Corregir la generación de lista de ExperimentalFeature (9996 interno)Fix ExperimentalFeature list generation (Internal 9996)
  • Incrementar la versión de PSReadLine de 2.0.0-beta4 a 2.0.0-beta5 (n.º 10536)Bump PSReadLine version from 2.0.0-beta4 to 2.0.0-beta5 (#10536)
  • Corregir el script de compilación de versión para establecer la etiqueta de versiónFix release build script to set release tag
  • Actualizar la versión de Microsoft.PowerShell.Native a 7.0.0-preview.2 (n.º 10519)Update version of Microsoft.PowerShell.Native to 7.0.0-preview.2 (#10519)
  • Actualizar a Netcoreapp 3.0 preview9 (n.º 10484) (¡gracias @bergmeister!)Upgrade to Netcoreapp3.0 preview9 (#10484) (Thanks @bergmeister!)
  • Asegurarse de que la compilación coordinada diaria es una compilación diaria (nº 10464)Make sure the daily coordinated build, knows it is a daily build (#10464)
  • Actualizar la compilación del paquete combinado para liberar las compilaciones diarias (n.º 10449)Update the combined package build to release the daily builds (#10449)
  • Quitar la referencia de appveyor (n.º 10445) (¡gracias @RDIL!)Remove appveyor reference (#10445) (Thanks @RDIL!)
  • Incrementar la versión de NJsonSchema de 10.0.22 a 10.0.23 (n.º 10421)Bump NJsonSchema version from 10.0.22 to 10.0.23 (#10421)
  • Quitar la eliminación de la carpeta de compilación de linux-x64 porque algunas dependencias de Alpine lo necesitan (n.º 10407)Remove the deletion of linux-x64 build folder because some dependencies for Alpine need it (#10407)

Contenido de la ayuda y la documentaciónDocumentation and Help Content

  • Refactorizar los registros de cambios en un registro por versión (nº 11165)Refactor change logs into one log per release (#11165)
  • Corregir vínculos redireccionables para los documentos de ayuda en pantalla de PowerShell 7 (n.º 11071)Fix FWLinks for PowerShell 7 online help documents (#11071)
  • Actualizar CONTRIBUTING.md (n.º 11096) (¡gracias @mklement0!)Update CONTRIBUTING.md (#11096) (Thanks @mklement0!)
  • Corregir vínculos de documento de instalación en README.md (n.º 11083)Fix installation doc links in README.md (#11083)
  • Agrega ejemplos al script install-PowerShell.ps1 (n.º 11024) (¡gracias @kilasuit!)Adds examples to install-powershell.ps1 script (#11024) (Thanks @kilasuit!)
  • Corregir para el énfasis de Select-String e Import-DscResource en CHANGELOG.md (n.º 10890)Fix to Select-String emphasis and Import-DscResource in CHANGELOG.md (#10890)
  • Quitar el vínculo obsoleto de powershell-beginners-guide.md (n.º 10926)Remove the stale link from powershell-beginners-guide.md (#10926)
  • Combinar registros de cambios estables y de mantenimiento (n.º 10527)Merge stable and servicing change logs (#10527)
  • Actualizar la versión de .NET usada en la documentación de compilación (n.º 10775) (¡gracias @Greg-Smulko!)Update used .NET version in build docs (#10775) (Thanks @Greg-Smulko!)
  • Reemplazar los vínculos de MSDN a docs.microsoft.com en powershell-beginners-guide.md (n.º 10778) (¡gracias @iSazonov!)Replace links from MSDN to docs.microsoft.com in powershell-beginners-guide.md (#10778) (Thanks @iSazonov!)
  • Corregir el vínculo de información general de DSC roto (n.º 10702)Fix broken DSC overview link (#10702)
  • Actualizar Support_Question. MD para vincular a Stack Overflow como otro recurso de comunidad (n.º 10638) (¡gracias @mklement0!)Update Support_Question.md to link to Stack Overflow as another community resource (#10638) (Thanks @mklement0!)
  • Agregar la arquitectura de procesador a la plantilla de solicitud de distribución (n.º 10661)Add processor architecture to distribution request template (#10661)
  • Agregar un nuevo libro de PowerShell MoL a la documentación de aprendizaje de PowerShell (n.º 10602)Add new PowerShell MoL book to learning PowerShell docs (#10602)
  • Actualizar README.md y los metadatos para las versiones v6.1.6 y v6.2.3 (n.º 10523)Update README.md and metadata for v6.1.6 and v6.2.3 releases (#10523)
  • Corregir un error de escritura en README.md (n.º 10465) (¡gracias @vedhasp!)Fix a typo in README.md (#10465) (Thanks @vedhasp!)
  • Agregar una referencia al módulo PSKoans en la documentación de recursos de aprendizaje (n.º 10369) (¡gracias @vexx32!)Add a reference to PSKoans module to Learning Resources documentation (#10369) (Thanks @vexx32!)
  • Actualizar README.md y metadata.json para 7.0.0-preview.3 (n.º 10393)Update README.md and metadata.json for 7.0.0-preview.3 (#10393)