Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.