AvoidUsingPositionalParameters

niveau de gravité : informations

Description

Cette règle détecte lorsque des commandes sont appelées avec trois paramètres positionnels ou plus au lieu d’utiliser des paramètres nommés. L’utilisation de paramètres de position réduit la lisibilité du code et peut introduire des erreurs. Il est possible qu’une future version du cmdlet change d’une manière qui casserait les scripts existants s’ils reposent sur la position des paramètres.

Pour les cmdlets simples avec seulement quelques paramètres positionnels, le risque est bien moindre. Pour éviter que cette règle ne soit trop bruyante, ne fournissez pas trois paramètres ou plus. Un exemple simple où le risque d’utiliser des paramètres de position est négligeable est Test-Path $Path.

Utilisez les noms complets des paramètres lors de l’appel des commandes.

Example

Non conforme

Get-Command ChildItem Microsoft.PowerShell.Management

Compliant

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

Règle de configuration

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

Paramètres

CommandAllowList

Ce paramètre spécifie les commandes ou scripts à exclure de cette règle. Il accepte un réseau de cordes. La valeur par défaut est @().

Activer

Ce paramètre détermine si ScriptAnalyzer vérifie le code par rapport à cette règle. Il accepte une valeur booléenne. Pour désactiver cette règle, définissez ce paramètre à $false. La valeur par défaut est $true.