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


AvoidOverwritingBuiltInCmdlets

уровень серьезности : предупреждение

Описание

Это правило помечает командлеты, доступные в заданном выпуске или версии PowerShell в заданной операционной системе, которые перезаписываются объявлением функции. Он работает путем сравнения объявлений функций с набором разрешенных списков, которые поставляются с PSScriptAnalyzer. Эти файлы разрешенного списка используются другими правилами PSScriptAnalyzer. Дополнительные сведения см. в документации по правилу UseCompatibleCmdlets.

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

Чтобы включить правило для проверки совместимости скрипта в PowerShell Core в Windows, поместите следующий файл параметров.

@{
    'Rules' = @{
        'PSAvoidOverwritingBuiltInCmdlets' = @{
            'PowerShellVersion' = @('core-6.1.0-windows')
        }
    }
}

Параметры

PowerShellVersion

Параметр PowerShellVersion — это список разрешенных списков, которые поставляются с PSScriptAnalyzer.

Заметка

Значение по умолчанию для PowerShellVersioncore-6.1.0-windows, если установлен PowerShell 6 или более поздней версии, и desktop-5.1.14393.206-windows, если это не так.

Как правило, исправленные версии PowerShell имеют одинаковые данные командлета, поэтому предоставляются только параметры основных и дополнительных версий PowerShell. Можно также создать файл пользовательских параметров, а также с помощью скрипта New-CommandDataFile.ps1 и использовать его, поместив созданный JSON в папку Settings папки установки модуля PSScriptAnalyzer, то параметр PowerShellVersion — это только его имя файла (которое также можно изменить при необходимости). Обратите внимание, что файлы core-6.0.2-* были удалены в PSScriptAnalyzer 1.18 с момента окончания срока действия PowerShell 6.0.