AvoidUsingPositionalParameters

Önem Derecesi: Bilgi

Description

Bu kural, komutların adlandırılmış parametreler yerine üç veya daha fazla konumsal parametreyle çağrıldığını algılar. Konumsal parametrelerin kullanılması kodun okunabilirliğini azaltır ve hatalara yol açabilir. Cmdlet'in gelecekteki bir sürümünün, parametre konumuna dayanırsa mevcut scriptleri bozacak şekilde değişmesi mümkün.

Sadece birkaç pozisyonsal parametreye sahip basit komutalar için risk çok daha küçüktür. Bu kuralın çok gürültülü olmasını önlemek için üç veya daha fazla parametre vermeyin. Pozisyonsal parametrelerin kullanımının riskinin önemsiz olduğu basit bir örnek .Test-Path $Path

Komut çağırırken tam parametre isimlerini kullanın.

Example

Standartlara Uygun Değil

Get-Command ChildItem Microsoft.PowerShell.Management

Compliant

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

Kuralı yapılandırma

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

Parameters

CommandAllowList

Bu parametre, bu kuraldan hariç tutulacak komutları veya betikleri belirtir. Bir dizi diziyi kabul eder. @() varsayılan değerdir.

Enable

Bu parametre, ScriptAnalyzer'ın kodu bu kurala göre kontrol edip etmediğini kontrol eder. Bir boolean değerini kabul eder. Bu kuralı devre dışı bırakmak için bu parametreyi olarak ayarlayın $false. $true varsayılan değerdir.