تجنب استخدام المعلمات الموضعية

مستوى الخطورة : المعلومات

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.