嚴重性層級:資訊
Description
此規則偵測指令是否使用三個或以上位置參數而非命名參數。 使用位置參數會降低程式碼可讀性,並可能引入錯誤。 未來版本的指令長可能會改變,導致依賴參數位置的現有腳本失效。
對於僅有少數位置參數的簡單指令檔,風險較低。 為了避免這條規則過於雜訊,不要提供三個或以上的參數。 一個簡單例子, Test-Path $Path其使用位置參數的風險可忽略不計。
呼叫指令時請使用完整的參數名稱。
Example
不合規
Get-Command ChildItem Microsoft.PowerShell.Management
Compliant
Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management
設定規則
Rules = @{
PSAvoidUsingPositionalParameters = @{
CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
Enable = $true
}
}
Parameters
CommandAllowList
此參數指定了要排除在此規則之外的指令或腳本。 它接受字串陣列。 預設值為 @()。
Enable
此參數控制 ScriptAnalyzer 是否會依照此規則檢查程式碼。 它接受一個布林值。 要停用此規則,請將此參數設為 $false。 預設值為 $true。