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.
La versión PowerShell Core 6.2 se centró en mejoras de rendimiento, corrección de errores y mejoras de cmdlet y lenguaje más pequeñas que mejoran la calidad. Para ver la lista completa de mejoras, consulta nuestros registros detallados de cambios en GitHub.
Características experimentales
Anteriormente, activamos el soporte para Funciones Experimentales. En la versión 6.2, tenemos cuatro funciones experimentales para probar. Por favor, proporcionad su opinión para que podamos mejorar y decidir si la función merece la pena promocionarla a estatus de mainstream.
Úsalo Get-ExperimentalFeature para obtener una lista de características experimentales disponibles. Puedes activar o desactivar estas funciones con Enable-ExperimentalFeature y Disable-ExperimentalFeature.
Sugerencias de comando no encontrado
Esta función utiliza el emparejamiento difuso para encontrar sugerencias de comandos o cmdlets que puedas haber escrito mal.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Example
En este ejemplo, el nombre del cmdlet mal escrito coincide con varias sugerencias de lo más probable al menos probable.
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
Agrupación Implícita de Remoto
Al usar remotidos implícitos en una pipeline, PowerShell trata cada comando de forma independiente. Los objetos se serializan repetidamente y de-serialized se situan entre el cliente y el sistema remoto durante la ejecución de la canalización.
Con esta función, PowerShell analiza la tubería para determinar si el comando es seguro de ejecutar y si existe en el sistema objetivo. Cuando es cierto, PowerShell ejecuta toda la tubería remotamente y solo serializa y de-serializes los resultados vuelven al cliente.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Una prueba real de Get-Process | Sort-Object over localhost disminuye de 10-15 segundos a 20-30 milisegundos. La función solo necesita estar activada en el cliente. No se requieren cambios en el servidor.
Conducción temporal
Enable-ExperimentalFeature -Name PSTempDrive
Si usas PowerShell Core en diferentes sistemas operativos, descubrirás que la variable de entorno para encontrar el directorio temporal es diferente en Windows, macOS y Linux. Con esta función, obtienes una llamada Temp:PSDrive que se mapea automáticamente a la carpeta temporal del sistema operativo que estás usando.
Example
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Ten en cuenta que los comandos nativos de archivo (como ls en Linux) no conocen PSDrives y no verán este Temp: disco.
Expansión de abreviaturas
Se espera que los cmdlets de PowerShell tengan sustantivos descriptivos. Esto da lugar a nombres largos que son más difíciles de escribir. Esta función te permite simplemente escribir los caracteres mayúsculos del cmdlet y usar el completado de tabulación para encontrar una coincidencia.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Example
PS> i-arsavsf
Si pulsas tab y tienes instalado el módulo Azure PowerShell Az , se completará automáticamente para:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Nota:
Esta función está pensada para usarse de forma interactiva. No se pueden ejecutar formas abreviadas de cmdlets. Esta función no sustituye a los alias.
Cambios disruptivos
- Corregir
-NoEnumerateel comportamiento paraWrite-Outputque sea coherente con PowerShell de Windows. (#9069) - Haz
Join-String -InputObject 1,2,3que el resultado sea igual al1,2,3 | Join-Stringresultado (#8611) (Gracias @sethvs!) - Añadir
-StableaSort-Objectpruebas relacionadas (#7862) (Gracias @KirkMunro!) - Mejora
Start-Sleepel cmdlet para aceptar fracciones de segundo (#8537) (Gracias @Prototyyppi!) - Cambiar la tabla hashable para que use OrdinalIgnoreCase para que esté
case-insensitiveen todas las culturas (#8566) - Fix LiteralPath in
Import-Csvpara vincular aGet-ChildItemla salida (#8277) (Gracias @iSazonov!) - Ya no se salta una columna sin nombre si se usa el delimitador de doble comilla en
Import-Csv(#7899) (Gracias @Topping!) -
Get-ExperimentalFeatureYa no tiene-ListAvailableswitch (#8318) - El parámetro de depuración ahora se establece
$DebugPreferenceen Continuar en lugar de Inquire (#8195) (Gracias @KirkMunro!) - Honor
-OutputFormatsi se especifica en comandos codificados no interactivos, redirigidos y usados con pwsh (#8115) - Carga el conjunto desde la ruta base del módulo antes de intentar cargar desde el GAC (#8073)
- Eliminar tilde de los paquetes de vista previa para Linux (#8244)
- Procesamiento de movimientos antes
-WorkingDirectorydel procesamiento de perfiles (#8079) - No añadir
PATHEXTvariable de entorno en Unix (#7697) (Gracias @iSazonov!)
Problemas conocidos
- El remoto en plataformas Windows IOT ARM tiene un problema al cargar módulos. Véase (#8053)
Actualizaciones y correcciones generales
- Activar la completación de tabulaciones insensibles a mayúsculas minúsculas para archivos y carpetas en el sistema de archivos sensible a mayúsculas minúsculas (#8128)
- Haz públicos PSVersionInfo.PSVersion y PSVersionInfo.PSEdition (#8054) (Gracias @KirkMunro!)
- Inferencia de tipo de adición para
$_/$PSItemincatch{ }blocks (#8020) (Gracias @vexx32!) - Corregir la inferencia de tipo de invocación de métodos estáticos (#8018) (Gracias @SeeminglyScience!)
- Crear tipos inferidos para
Select-Object,Group-Object, PSObject y Hashtable (#7231) (Gracias @powercode!) - Método de llamada de soporte con
ByRef-likeparámetros de tipo (#7721) - Manejar el caso en que la ruta del módulo PowerShell de Windows ya esté en el PSModulePath del entorno (#7727)
- Habilitar
SecureStringlos cmdlets para no Windows almacenando el texto plano (#9199) - Mejorar el mensaje de error en versiones no Windows al importar clixml con securestring (#7997)
- Añadiendo parámetro RespondiTo a
Send-MailMessage(#8727) (Gracias @replicaJunction!) - Añadir mensaje Obsoleto a
Send-MailMessage(#9178) - Corrección
Restart-Computerpara trabajarlocalhostcuando WinRM no esté presente (#9160) - Error de finalización de
Start-Joblanzamiento cuando PowerShell está alojado (#9128) - Añadir aceleradores y sufijos tipo C# para ushort, uint, ulong y short literals (#7813) (Gracias @vexx32!)
- Se añadieron nuevos sufijos para los literales numéricos - véase about_Numeric_Literals (#7901) (Gracias @vexx32!)
- Reportar correctamente el nivel de impacto cuando SupportsShouldProcess no esté configurado en 'true' (#8209) (Gracias @vexx32!)
- Problemas con el conjunto de caracteres de solicitud de corrección en los comandos web (#8742) (Gracias @markekraus!)
- Arreglar el problema de Expect
100-continuecon los Web Cmdlets (#8679) (Gracias @markekraus!) - Solucionar el problema de bloqueo de archivos con los webcommandlets (#7676) (Gracias @Claustn!)
- Arreglar el problema de análisis de la página de códigos en
Invoke-RestMethod(#8694) (Gracias @markekraus!) - Refactorizar
ConvertTo-Jsonpara exponer JsonObject.ConvertToJson como una API pública (#8682) - Añade profundidad máxima configurable con
ConvertFrom-Json-Depth (#8199) (Gracias @louistio!) - Añadir el parámetro EscapeHandling en
ConvertTo-Jsonel cmdlet (#7775) (Gracias @iSazonov!) - Añadir
-CustomPipeNamea pwsh yEnter-PSHostProcess(#8889) - Habilitar la creación de enlaces simbólicos relativos en Windows con
New-Item(#8783) - Permitir que los usuarios de Windows en modo desarrollador creen enlaces simbólicos sin elevación (#8534)
- Permitir
Write-Informationaceptar$null(#8774) - Corrección
Get-Helppara funciones avanzadas con contenido de ayuda MAML (#8353) - Solucionar
Get-Helpel problema de PSTypeName con -Parameter cuando solo se declara un parámetro (#8754) (Gracias @pougetat!) - Corrección del cálculo de tokens para
Get-Helpejecutarse en ScriptBlock y recibir ayuda con comentarios. (#8238) (Gracias @hubuk!) - Cambiar
Get-Helpel parámetro de -Parameter cmdlet para que acepte arreglos de cadenas (#8454) (Gracias @sethvs!) - Resuelve el PAGER si su ruta contiene espacios (#8571) (Gracias @pougetat!)
- Añadir un prompt al uso de
lessen la función 'ayuda' para indicar al usuario cómo salir (#7998) - Añadir enum de soporte y tipos de personajes en
Format-Hexcmdlet (#8191) (Gracias @iSazonov!) - Eliminar ShouldProcess de
Format-Hex(#8178) - Añadir nuevos parámetros de Offset y Count y
Format-Hexrefactorizar el cmdlet (#7877) (Gracias @iSazonov!) - Permite 'name' como clave de alias para 'label' en
ConvertTo-Html, permite que la entrada 'width' sea un entero (#8426) (Gracias @mklement0!) - Haz que las propiedades calculadas basadas en bloques de script funcionen de nuevo en
ConvertTo-Html(#8427) (Gracias @mklement0!) - Añadir un cmdlet
Join-Stringpara crear texto a partir de la entrada del pipeline (#7660) (Gracias @powercode!) - Fix
Join-Stringcmdlet FormatString parameter logic (#8449) (Gracias @sethvs!) - Volver
Clear-Hosta usar$RAWUIy despejar a trabajar sobre remoting (#8609) - Cambiar
Clear-Hosta llamada[console]::clearsencilla y eliminar el alias claro de Unix (#8603) - Fix LiteralPath in
Import-Csvpara vincular aGet-ChildItemla salida (#8277) (Gracias @iSazonov!) - la función de ayuda no debería usar el buscapersonas para AliasHelpInfo (#8552)
- Añadir
-UseMinimalHeadera paraStart-Transcriptminimizar la cabecera de transcripción (#8402) (Gracias @lukexjeremy!) - Add
Enable-ExperimentalFeatureyDisable-ExperimentalFeaturecmdlets (#8318) - Expone todos los cmdlets de PSDiagnostics si logman.exe está disponible (#8366)
- Eliminar el parámetro Persist de
New-PSDrivelanon-Windowsplataforma (#8291) (Gracias @lukexjeremy!) - Añadir soporte para
cd +(#7206) (Gracias @bergmeister!) - Habilitar
Set-Location -LiteralPathpara trabajar con carpetas nombradas - y + (#8089) -
Test-Pathretorna$falsecuando se le da un valor vacío o$nullde camino (#8080) (Gracias @vexx32!) - Permitir que se devuelva el parámetro dinámico incluso si el camino no coincide con ningún proveedor (#7957)
- Soporte
Get-PSHostProcessInfoyEnter-PSHostProcessen plataformas Unix (#8232) - Reducir asignaciones en
Get-Contentel cmdlet (#8103) (Gracias @iSazonov!) - Habilitar
Add-Contentel acceso de lectura con otras herramientas mientras se escribe contenido (#8091) -
Get/Add-Contentlanza un error mejorado al apuntar a un contenedor (#7823) (Gracias @kvprasoon!) - Añadir
-Nameparámetros y-NoUserOverrides-ListAvailableaGet-Culturecmdlet (#7702) (Gracias @iSazonov!) - Añadir un atributo unificado para completar el parámetro de codificación . (#7732) (Gracias @ThreeFive-O!)
- Permitir identificaciones numéricas y nombre de páginas de códigos registradas en parámetros de codificación (#7636) (Gracias @iSazonov!)
- Corrección
Rename-Item -Pathcon personaje comodín (#7398) (Gracias @kwkam!) - Cuando existe
Start-Transcriptun archivo, el archivo vacío en lugar de borrarlo (#8131) (Gracias @paalbra!) - Haz
Add-Typearchivos de código abierto con FileAccess.Read y FileShare.Read explícitamente (#7915) (Gracias @IISResetMe!) - Solución
Enter-PSSession -ContainerIdpara la última versión de Windows (#7883) - Asegúrate de que la propiedad NestedModules se llene con
Test-ModuleManifest(#7859) - Añadir
%Fcaja aGet-Date-UFormat (#7630) (Gracias @britishben!) - Arreglo
Set-Service -Status Stoppedpara detener servicios con dependencias (#5525) (Gracias @zhenggu!)