Compartilhar via


AvoidUsingPositionalParameters

** Nível de gravidade: informações **

Descrição

O uso de parâmetros posicionais reduz a legibilidade do código e pode introduzir erros. É possível que uma versão futura do cmdlet possa ser alterada de uma maneira que interromperia os scripts existentes se as chamadas para o cmdlet dependessem da posição dos parâmetros.

Para cmdlets simples com apenas alguns parâmetros posicionais, o risco é muito menor. Para impedir que essa regra seja muito barulhenta, essa regra só é disparada quando há três ou mais parâmetros fornecidos. Um exemplo simples em que o risco de usar parâmetros posicionais é insignificante é Test-Path $Path.

Configuração

Rules = @{
    PSAvoidUsingPositionalParameters = @{
        CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
        Enable           = $true
    }
}

Parâmetros

CommandAllowList: string[] (o valor padrão é @()')

Comandos ou scripts a serem excluídos dessa regra.

Habilitar: bool (o valor padrão é $true)

Habilite ou desabilite a regra durante a invocação de ScriptAnalyzer.

Como

Use nomes de parâmetros completos ao chamar comandos.

Exemplo

Errado

Get-Command ChildItem Microsoft.PowerShell.Management

Correto

Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management