Notas de versão do WMF (Windows Management Framework) 5.x

Alterações do WMF 5.0

  • O PowerShell 5.0 adiciona um novo fluxo estruturado Informações
  • Melhorias no DSC, incluindo quatro novos recursos de DSC:
    • WindowsFeatureSet
    • WindowsOptionalFeatureSet
    • ServiceSet
    • ProcessSet
  • Adição de administração just enough para habilitar a administração baseada em função por meio da comunicação remota do PowerShell
  • O PowerShell 5.0 estende o idioma para incluir classes e enumerações definidas pelo usuário
  • Recursos de depuração aprimorados no ISE do PowerShell e depuração remota adicionada
  • Os módulos PowerShellGet e PackageManagement foram adicionados
  • Log de scripts e transcrições aprimorados do PowerShell
  • Adicionar cmdlets de sintaxe de mensagem criptográfica
  • O WMF 5.0 inclui o módulo NetworkSwitchManager para Windows
  • Adicionado o módulo Microsoft.PowerShell.ODataUtils
  • Adição de suporte para SIL (Registro em Log de Inventário de Software)
  • Cortar cmdlets novos ou atualizados em resposta a solicitações e problemas do usuário

Alterações do WMF 5.1

O WMF 5.1 inclui os componentes do PowerShell, WMI, WinRM e LOG de Inventário de Software (SIL) que foram 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, instalação da CBS, instalaçã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 pelo catálogo provenientes do Servidor pull e ao usar cmdlets do PowerShellGet
  • Respostas a uma série de solicitações e problemas do usuário

Importante

Antes de instalar o WMF 5.1 no Windows Server 2008 ou no 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 edições diferentes que denotam diferentes conjuntos de recursos e compatibilidade de plataforma.

  • Desktop Edition: criado no .NET Framework e fornece compatibilidade com scripts e módulos direcionados a versões do PowerShell em execução em edições completas do Windows, como Server Core e Windows Desktop.
  • Core Edition: criado no .NET Core e fornece compatibilidade com scripts e módulos direcionados a versões do PowerShell em execução em edições reduzidas do Windows, como Nano Server e Windows IoT.

Saiba mais sobre como usar o PowerShell Editions

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 exportados por ele.

Por padrão, esse cache é armazenado no arquivo ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache. O cache normalmente é lido na inicialização durante a pesquisa de um comando e é gravado em um thread em segundo plano em algum momento após a importação de um módulo.

Para alterar o local padrão do cache, defina a variável de ambiente $env:PSModuleAnalysisCachePath antes de iniciar o PowerShell. As alterações nessa variável de ambiente afetarão apenas os processos infantis. O valor deve nomear um caminho completo (incluindo nome de arquivo) que o PowerShell tem permissão para criar e gravar arquivos. Para desabilitar 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 gravar 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, nesse caso, você pode desativá-las definindo:

$env:PSDisableModuleAnalysisCacheCleanup = 1

A configuração dessa variável de ambiente entrará em vigor imediatamente 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 houver várias versões presentes, isso resultará em um erro.

No WMF 5.1:

  • Você pode usar construtor ModuleSpecification (Hashtable).

    Essa 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 que Import-Module e Import-DscResource.

Melhorias no Pester

No WMF 5.1, a versão do Pester que é fornecida com o PowerShell foi atualizada da 3.3.5 para a 3.4.0. Essa atualização permite um melhor comportamento para o Pester no Nano Server.

Você pode examinar as alterações no Pest inspecionando o CHANGELOG no repositório GitHub.