Notas de la versión de Windows Management Framework (WMF) 5.x
Cambios de WMF 5.0
- PowerShell 5.0 agrega una nueva secuencia de información estructurada
- Mejoras en DSC, incluidos cuatro nuevos recursos de DSC:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- ProcessSet
- Se ha agregado Just Enough Administration para habilitar la administración basada en roles a través de la comunicación remota de PowerShell.
- PowerShell 5.0 amplía el lenguaje para incluir clases y enumeraciones definidas por el usuario.
- Se han mejorado las características de depuración en PowerShell ISE y se ha agregado la depuración remota.
- Se agregaron los módulos PowerShellGet y PackageManagement.
- Registro y transcripciones mejoradas de scripts de PowerShell
- Adición de cmdlets de sintaxis de mensajes criptográficos
- WMF 5.0 incluye el módulo NetworkSwitchManager para Windows
- Se agregó el módulo Microsoft.PowerShell.ODataUtils.
- Se ha agregado compatibilidad con el registro de inventario de software (SIL)
- Sever new or update cmdlets in response to user requests and issues
Cambios de WMF 5.1
WMF 5.1 incluye los componentes powerShell, WMI, WinRM y registro de inventario de software (SIL) que se publicaron con Windows Server 2016. WMF 5.1 se puede instalar en Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 y 2012 R2, y proporciona varias mejoras sobre WMF 5.0, entre las que se incluyen:
- Nuevos cmdlets
- Entre las mejoras de PowerShellGet se incluyen la aplicación de módulos firmados y la instalación de módulos JEA
- PackageManagement agregó compatibilidad con contenedores, configuración de CBS, configuración basada en EXE, paquetes CAB
- Mejoras de depuración para las clases de DSC y PowerShell
- Mejoras de seguridad, incluida la aplicación de módulos firmados por catálogo procedentes del servidor de extracción y al usar cmdlets de PowerShellGet
- Respuestas a una serie de solicitudes y problemas de usuario
Importante
Antes de instalar WMF 5.1 en Windows Server 2008 o Windows 7, confirme que WMF 3.0 no está instalado. Para obtener más información, consulta requisitos previos de WMF 5.1 para Windows Server 2008 R2 SP1 y Windows 7 SP1.
Ediciones de PowerShell
A partir de la versión 5.1, PowerShell está disponible en diferentes ediciones que indican distintos conjuntos de características y compatibilidad de plataformas.
- Desktop Edition: compilado en .NET Framework y proporciona compatibilidad con scripts y módulos destinados a versiones de PowerShell que se ejecutan en ediciones de superficie completa de Windows, como Server Core y Windows Desktop.
- Core Edition: compilado en .NET Core y proporciona compatibilidad con scripts y módulos destinados a versiones de PowerShell que se ejecutan en ediciones de superficie reducida de Windows, como Nano Server y Windows IoT.
Más información sobre el uso de ediciones de PowerShell
- Determinar la edición en ejecución de PowerShell mediante $PSVersionTable
- Filtrar los resultados de Get-Module por CompatiblePSEditions mediante el parámetro PSEdition
- Impedir la ejecución de scripts a menos que se ejecute en una edición compatible de PowerShell
- Declarar la compatibilidad de un módulo con versiones específicas de PowerShell
Caché de análisis de módulos
A partir de WMF 5.1, PowerShell proporciona control sobre el archivo que se usa para almacenar en caché datos sobre un módulo, como los comandos que exporta.
De forma predeterminada, esta caché se almacena en el archivo ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
. Normalmente, la memoria caché se lee al iniciarse mientras se busca un comando y se escribe en un subproceso en segundo plano alguna vez después de importar un módulo.
Para cambiar la ubicación predeterminada de la memoria caché, establezca la variable de entorno $env:PSModuleAnalysisCachePath
antes de iniciar PowerShell. Los cambios en esta variable de entorno solo afectarán a los procesos secundarios. El valor debe asignar un nombre a una ruta de acceso completa (incluido el nombre de archivo) que PowerShell tiene permiso para crear y escribir archivos. Para deshabilitar la caché de archivos, establezca este valor en una ubicación no válida, por ejemplo:
$env:PSModuleAnalysisCachePath = 'nul'
Esto establece la ruta de acceso a un dispositivo no válido. Si PowerShell no puede escribir en la ruta de acceso, no se devuelve ningún error, pero puede ver los informes de errores mediante un seguimiento:
Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }
Al escribir la memoria caché, PowerShell comprobará los módulos que ya no existen para evitar una caché innecesariamente grande. A veces, estas comprobaciones no son deseables, en cuyo caso puede desactivarlas estableciendo:
$env:PSDisableModuleAnalysisCacheCleanup = 1
Establecer esta variable de entorno surtirá efecto inmediatamente en el proceso actual.
Especificación de la versión del módulo
En WMF 5.1, using module
se comporta del mismo modo que otras construcciones relacionadas con módulos en PowerShell.
Anteriormente, no tenía forma de especificar una versión de módulo determinada; si había varias versiones presentes, se produjo un error.
En WMF 5.1:
Puede usar Constructor moduleSpecification (Hashtable).
Esta tabla hash tiene el mismo formato que
Get-Module -FullyQualifiedName
.Ejemplo de :
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
Si hay varias versiones del módulo, PowerShell usa el misma lógica de resolución que
Import-Module
y no devuelve un comportamiento similar aImport-Module
yImport-DscResource
.
Mejoras en Pester
En WMF 5.1, la versión de Pester que se incluye con PowerShell se ha actualizado de 3.3.5 a 3.4.0. Esta actualización permite un mejor comportamiento para Pester en Nano Server.
Puede revisar los cambios en Pest inspeccionando el CHANGELOG en el repositorio de GitHub.