AvoidUsingPositionalParameters

Nível de gravidade: Informação

Description

Esta regra deteta quando comandos são chamados com três ou mais parâmetros posicionais em vez de usar parâmetros nomeados. A utilização de parâmetros posicionais reduz a legibilidade do código e pode introduzir erros. É possível que uma versão futura do cmdlet possa mudar de forma a quebrar scripts existentes se dependerem da posição dos parâmetros.

Para cmdlets simples com apenas alguns parâmetros posicionais, o risco é muito menor. Para evitar que esta regra seja demasiado ruidosa, 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 de parâmetros ao chamar comandos.

Example

Não conforme

Get-Command ChildItem Microsoft.PowerShell.Management

Compliant

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

Regra de configuração

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

Parameters

CommandAllowList

Este parâmetro especifica comandos ou scripts a serem excluídos desta regra. Aceita uma matriz de cordas. O valor predefinido é @().

Enable

Este parâmetro controla se o ScriptAnalyzer verifica o código com esta regra. Aceita um valor booleano. Para desativar esta regra, defina este parâmetro para $false. O valor predefinido é $true.