UseCompatibleCmdlets

Nível de gravidade: Aviso

Descrição

Esta regra deteta cmdlets que não estão disponíveis para a edição, versão e sistema operativo PowerShell que pretendes. A regra compara cada cmdlet do teu script com uma lista de compatibilidade que vem com o PSScriptAnalyzer. Estes ficheiros encontram-se na seguinte localização: /path/to/PSScriptAnalyzerModule/Settings.

Cada ficheiro utiliza este formato de nomenclatura:

<psedition>-<psversion>-<os>.json

Where:

  • <psedition> é Core ou Desktop
  • <psversion> é a versão PowerShell
  • <os> é Windows, Linux, Linux-Arm ou MacOS

Example

Para verificar se o seu script é compatível com o PowerShell Core 6.1 no Windows, adicione esta configuração:

@{
    'Rules' = @{
        'PSUseCompatibleCmdlets' = @{
            'compatibility'      = @('core-6.1.0-windows')
        }
    }
}

O parâmetro de compatibilidade aceita uma lista de um ou mais identificadores-alvo, tais como:

  • área de trabalho-2.0-windows
  • área de trabalho-3.0-windows
  • desktop-4.0-windows (retirado do Windows Server 2012 R2)
  • área de trabalho-5.1.14393.206-windows
  • Core-6.1.0-Windows (retirado do Windows 10, versão 1803)
  • core-6.1.0-linux (retirado do Ubuntu 18.04)
  • core-6.1.0-linux-arm (retirado do Raspbian)
  • Core-6.1.0-macOS

As versões PowerShell com patches geralmente têm os mesmos dados de cmdlet, por isso esta regra inclui principalmente perfis de versões maiores e secundárias.

Também pode criar um perfil personalizado comNew-CommandDataFile.ps1. Coloque o ficheiro JSON gerado na Settings pasta do PSScriptAnalyzer módulo. Depois podes referenciar esse ficheiro pelo nome em compatibility.

Os core-6.0.2-* ficheiros foram removidos no PSScriptAnalyzer 1.18 porque o PowerShell 6.0 atingiu o seu fim de vida.