إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مستوى الخطورة : المعلومات
Description
تكتشف هذه القاعدة متى يتم استدعاء الأوامر بثلاثة أو أكثر من معلمات الموقع بدلا من استخدام معلمات مسماة. استخدام معلمات الموقع يقلل من قابلية قراءة الكود وقد يؤدي إلى حدوث أخطاء. من الممكن أن تتغير نسخة مستقبلية من cmdlet بطريقة قد تكسر السكريبتات الحالية إذا اعتمدت على موقع المعاملات.
بالنسبة لنماذج cmdlets البسيطة التي تحتوي على بعض المعلمات الموضعية فقط، يكون الخطر أقل بكثير. لمنع هذه القاعدة من أن تكون صاخبة جدا، لا توفر ثلاثة معايير أو أكثر. مثال بسيط حيث يكون خطر استخدام المعاملات الموضعية ضئيلا هو Test-Path $Path.
استخدم أسماء المعلمات الكاملة عند استدعاء الأوامر.
مثال
غير متوافق
Get-Command ChildItem Microsoft.PowerShell.Management
متوافقه
Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management
تكوين القاعدة
Rules = @{
PSAvoidUsingPositionalParameters = @{
CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
Enable = $true
}
}
المعلمات
قائمة CommandAllowList
يحدد هذا المعامل أوامر أو سكريبتات يجب استبعادها من هذه القاعدة. يقبل مصفوفة السلاسل الوترية. القيمة الافتراضية هي @().
تمكين
يتحكم هذا المعامل في ما إذا كان ScriptAnalyzer يتحقق من الكود مقابل هذه القاعدة. يقبل قيمة بوليانية. لتعطيل هذه القاعدة، قم بتعيين هذا المعامل إلى $false. القيمة الافتراضية هي $true.