AvoidUsingCmdletAliases

Nível de gravidade: Aviso

Descrição

Esta regra deteta o uso de alias cmdlet e a omissão do Get- prefixo em cenários de alias implícitos. Um alias é um nome alternativo ou apelido para um cmdlet ou elemento de comando, como uma função, script, ficheiro ou ficheiro executável. Embora possas usar pseudónimos em vez do nome completo do comando, fazê-lo reduz a legibilidade e a manutenção do código.

O PowerShell também suporta aliases implícitos. Quando o nome do cmdlet não é encontrado, o PowerShell adiciona Get- ao comando como recurso B. Por exemplo, ao verb digitar, executa Get-Verb.

Os pseudónimos criam inconsistência entre bases de código porque diferentes autores aprendem e usam diferentes alias. Os pseudónimos podem potencialmente tornar o código difícil de ler e compreender em ambientes colaborativos. Também pode causar problemas com a portabilidade e disponibilidade dos scripts.

Usar nomes completos de cmdlets melhora a clareza do código, facilita a manutenção dos scripts e permite o realce adequado de sintaxe em editores de código e plataformas como GitHub e Visual Studio Code. Usa sempre o nome completo do cmdlet em vez de pseudónimos.

Exemplo

Não conforme

gps | Where-Object {$_.WorkingSet -gt 20000000}

Compliant

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

Regra de configuração

Para evitar PSScriptAnalyzer que assinalem os seus alias preferidos, crie uma lista de permissões dos aliases no seu ficheiro de definições e aponte PSScriptAnalyzer para usar o ficheiro de definições. Por exemplo, para desativar PSScriptAnalyzer de sinalizar cd, que é um alias de Set-Location, defina o conteúdo do arquivo de configurações como o seguinte.

@{
    'Rules' = @{
        'PSAvoidUsingCmdletAliases' = @{
            'allowlist' = @('cd')
        }
    }
}