Compartir a través de


AvoidUsingPositionalParameters

** Nivel de gravedad: Información **

Descripción

El uso de parámetros posicionales reduce la legibilidad del código y puede introducir errores. Es posible que una versión futura del cmdlet cambie de forma que interrumpa los scripts existentes si las llamadas al cmdlet dependen de la posición de los parámetros.

En el caso de cmdlets simples con solo unos pocos parámetros posicionales, el riesgo es mucho menor. Para evitar que esta regla sea demasiado ruidosa, esta regla solo se desencadena cuando se proporcionan 3 o más parámetros. Un ejemplo sencillo en el que el riesgo de usar parámetros posicionales es insignificante, es Test-Path $Path.

Configuración

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

Parámetros

CommandAllowList: string[] (El valor predeterminado es @()')

Comandos o scripts que se excluirán de esta regla.

Habilitar: bool (el valor predeterminado es $true)

Habilite o deshabilite la regla durante la invocación de ScriptAnalyzer.

Cómo

Use nombres de parámetro completos al llamar a comandos.

Ejemplo

Incorrecto

Get-Command ChildItem Microsoft.PowerShell.Management

Correcto

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