Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ö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.