Notas de versão do Windows Management Framework (WMF) 5.x
Alterações do WMF 5.0
- O PowerShell 5.0 adiciona um novo fluxo estruturado de de Informações
- Melhorias no DSC, incluindo quatro novos recursos do DSC:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- Conjunto de serviços
- Conjunto de processos
- Adicionada Administração Apenas o Suficiente para habilitar a administração baseada em função por meio da comunicação remota do PowerShell
- O PowerShell 5.0 estende a linguagem para incluir classes e enumerações definidas pelo usuário
- Recursos de depuração aprimorados no ISE do PowerShell e depuração remota adicionada
- Adicionados os módulos PowerShellGet e PackageManagement
- Registro em log e transcrições de script do PowerShell aprimorados
- Adicionar cmdlets de sintaxe de mensagem criptográfica
- WMF 5.0 inclui o módulo NetworkSwitchManager para Windows
- Adicionado o módulo Microsoft.PowerShell.ODataUtils
- Adicionado suporte para Software Inventory Logging (SIL)
- Sever cmdlets novos ou de atualização em resposta a solicitações e problemas do usuário
Alterações do WMF 5.1
O WMF 5.1 inclui os componentes PowerShell, WMI, WinRM e Software Inventory Logging (SIL) lançados com o Windows Server 2016. O WMF 5.1 pode ser instalado no Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 e 2012 R2 e fornece várias melhorias em relação ao WMF 5.0, incluindo:
- Novos cmdlets
- As melhorias do PowerShellGet incluem a imposição de módulos assinados e a instalação de módulos JEA
- PackageManagement adicionou suporte para contêineres, configuração CBS, configuração baseada em EXE, pacotes CAB
- Melhorias de depuração para classes DSC e PowerShell
- Aprimoramentos de segurança, incluindo a imposição de módulos assinados por catálogo provenientes do Pull Server e ao usar cmdlets PowerShellGet
- Respostas a uma série de solicitações e problemas de usuários
Importante
Antes de instalar o WMF 5.1 no Windows Server 2008 ou Windows 7, confirme se o WMF 3.0 não está instalado. Para obter mais informações, consulte Pré-requisitos do WMF 5.1 para Windows Server 2008 R2 SP1 e Windows 7 SP1.
Edições do PowerShell
A partir da versão 5.1, o PowerShell está disponível em diferentes edições que denotam conjuntos de recursos variados e compatibilidade de plataforma.
- Desktop Edition: Construído no .NET Framework e fornece compatibilidade com scripts e módulos destinados a versões do PowerShell em execução em edições completas do Windows, como Server Core e Windows Desktop.
- Core Edition: Construído no .NET Core e fornece compatibilidade com scripts e módulos destinados a versões do PowerShell em execução em edições de espaço reduzido do Windows, como Nano Server e Windows IoT.
Saiba mais sobre como usar as edições do PowerShell
- Determinar a edição em execução do PowerShell usando $PSVersionTable
- Filtrar Get-Module resultados por CompatiblePSEditions usando o parâmetro PSEdition
- Impedir a execução de scripts, a menos que sejam executados em uma edição compatível do PowerShell
- Declarar a compatibilidade de um módulo com versões específicas do PowerShell
Cache de análise de módulo
A partir do WMF 5.1, o PowerShell fornece controle sobre o arquivo usado para armazenar em cache dados sobre um módulo, como os comandos que ele exporta.
Por padrão, esse cache é armazenado no arquivo ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
. O cache normalmente é lido na inicialização enquanto procura um comando e é escrito em um thread em segundo plano algum tempo depois que um módulo é importado.
Para alterar o local padrão do cache, defina a variável de ambiente $env:PSModuleAnalysisCachePath
antes de iniciar o PowerShell. As alterações a esta variável de ambiente afetarão apenas os processos das crianças. O valor deve nomear um caminho completo (incluindo nome de arquivo) que o PowerShell tenha permissão para criar e gravar arquivos. Para desativar o cache de arquivos, defina esse valor como um local inválido, por exemplo:
$env:PSModuleAnalysisCachePath = 'nul'
Isso define o caminho para um dispositivo inválido. Se o PowerShell não puder gravar no caminho, nenhum erro será retornado, mas você poderá ver o relatório de erros usando um rastreador:
Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }
Ao escrever o cache, o PowerShell verificará se há módulos que não existem mais para evitar um cache desnecessariamente grande. Às vezes, essas verificações não são desejáveis, caso em que você pode desativá-las definindo:
$env:PSDisableModuleAnalysisCacheCleanup = 1
A definição dessa variável de ambiente terá efeito imediato no processo atual.
Especificando a versão do módulo
No WMF 5.1, using module
se comporta da mesma maneira que outras construções relacionadas a módulos no PowerShell.
Anteriormente, você não tinha como especificar uma versão específica do módulo; se houvesse várias versões presentes, isso resultaria em um erro.
No WMF 5.1:
Você pode usar ModuleSpecification Construtor (Hashtable).
Esta tabela de hash tem o mesmo formato que
Get-Module -FullyQualifiedName
.Exemplo:
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
Se houver várias versões do módulo, o PowerShell usará a mesma lógica de resolução que
Import-Module
e não retornará um erro - o mesmo comportamento queImport-Module
eImport-DscResource
.
Melhorias no Pester
No WMF 5.1, a versão do Pester que acompanha o PowerShell foi atualizada de 3.3.5 para 3.4.0. Esta atualização permite um melhor comportamento para Pester no Nano Server.
Você pode revisar as alterações no Pest inspecionando o CHANGELOG no repositório GitHub.