Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.