AvoidUsingCmdletAliases

Nível de gravidade: aviso

Descrição

Essa regra detecta o uso de aliases 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, arquivo ou arquivo executável. Embora você possa usar aliases em vez do nome completo do comando, isso reduz a legibilidade e a manutenção do código.

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

Aliases criam inconsistência entre bases de código porque diferentes autores aprendem e usam diferentes aliases. Aliases podem potencialmente dificultar a leitura e compreensão do código em ambientes colaborativos. Também pode causar problemas com 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. Sempre use o nome completo do cmdlet em vez de apelidos.

Exemplo

Não Conforme

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

Em conformidade

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

Regra de configuração

Para evitar PSScriptAnalyzer que seus aliases preferidos sejam sinalizados, crie uma lista de permitir os aliases no seu arquivo de configurações e aponte PSScriptAnalyzer para usar o arquivo de configurações. Por exemplo, para desabilitar PSScriptAnalyzer de sinalizar cd, que é um alias de Set-Location, defina o conteúdo do arquivo de configurações para o seguinte.

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