AvoidUsingPositionalParameters

Schweregrad: Informationen

Description

Diese Regel erkennt, wenn Befehle mit drei oder mehr Positionsparametern aufgerufen werden, anstatt benannte Parameter zu verwenden. Die Verwendung von Positionsparametern verringert die Lesbarkeit des Codes und kann Fehler verursachen. Es ist möglich, dass sich eine zukünftige Version des Cmdlets so ändert, dass bestehende Skripte kaputt werden, wenn sie auf die Parameterposition angewiesen sind.

Bei einfachen cmdlets mit nur wenigen Positionsparametern ist das Risiko deutlich geringer. Um zu verhindern, dass diese Regel zu laut wird, sollten Sie nicht drei oder mehr Parameter angeben. Ein einfaches Beispiel, bei dem das Risiko der Verwendung von Positionsparametern vernachlässigbar ist, ist Test-Path $Path.

Verwenden Sie vollständige Parameternamen, wenn Sie Befehle aufrufen.

Example

Nicht konform

Get-Command ChildItem Microsoft.PowerShell.Management

Konform

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

Configure rule

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

Parameter

CommandAllowList

Dieser Parameter legt Befehle oder Skripte fest, die von dieser Regel ausgeschlossen werden sollen. Es akzeptiert ein String-Array. Der Standardwert ist @().

Aktivieren

Dieser Parameter steuert, ob ScriptAnalyzer den Code anhand dieser Regel prüft. Es akzeptiert einen boolschen Wert. Um diese Regel zu deaktivieren, setzen Sie diesen Parameter auf $false. Der Standardwert ist $true.