Поделиться через


AvoidUsingPositionalParameters

** Уровень серьезности: сведения **

Описание

Использование позиционных параметров снижает удобочитаемость кода и может привести к ошибкам. Возможно, что будущая версия командлета может измениться таким образом, чтобы нарушить существующие скрипты, если вызовы командлета зависят от положения параметров.

Для простых командлетов с небольшим количеством позиционных параметров риск гораздо меньше. Чтобы предотвратить слишком шумное правило, это правило активируется только при наличии 3 или более параметров. Простой пример, в котором риск использования позиционных параметров незначим, — .Test-Path $Path

Конфигурация

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

Параметры

CommandAllowList: string[] (значение по умолчанию — @()')

Команды или скрипты, которые должны быть исключены из этого правила.

Включить: bool (значение по умолчанию — $true)

Включите или отключите правило во время вызова ScriptAnalyzer.

Как

Используйте полные имена параметров при вызове команд.

Пример

Неправильно

Get-Command ChildItem Microsoft.PowerShell.Management

Правильно

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