AvoidUsingPositionalParameters

Nível de gravidade: de informações

Description

Essa regra detecta quando comandos são chamados com três ou mais parâmetros posicionais em vez de usar parâmetros nomeados. 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 mude de uma forma que quebre scripts existentes se depender da posição dos parâmetros.

Para cmdlets simples com apenas alguns parâmetros posicionais, o risco é muito menor. Para evitar que essa regra seja muito barulhenta, não forneça três ou mais parâmetros. Um exemplo simples onde o risco de usar parâmetros posicionais é negligenciável é Test-Path $Path.

Use nomes completos dos parâmetros ao chamar comandos.

Example

Não Conforme

Get-Command ChildItem Microsoft.PowerShell.Management

Em conformidade

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

Regra de configuração

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

Parameters

CommandAllowList

Esse parâmetro especifica comandos ou scripts a serem excluídos dessa regra. Aceita um array de cordas. O valor padrão é @().

Enable

Esse parâmetro controla se o ScriptAnalyzer verifica o código em relação a essa regra. Aceita um valor booleano. Para desabilitar essa regra, defina esse parâmetro para $false. O valor padrão é $true.