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


AvoidUsingCmdletAliases

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

Описание

Псевдоним — это альтернативное имя или псевдоним для командлета или для элемента команды, например функции, скрипта, файла или исполняемого файла. Псевдоним можно использовать вместо имени команды в любых командах PowerShell.

Существуют также неявные псевдонимы. Если PowerShell не удается найти имя командлета, он попытается добавить Get- в команду в качестве последнего средства. Поэтому при использовании команды verb будет выполняться Get-Verb.

Каждый автор PowerShell изучает фактические имена команд, но разные авторы учатся и используют разные псевдонимы. Псевдонимы могут затруднить чтение, понимание и влияние на доступность кода.

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

Использование полных имен команд также позволяет выделять синтаксис на сайтах и приложениях, таких как GitHub и Visual Studio Code.

Исправление

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

Список разрешенных псевдонимов

Чтобы предотвратить PSScriptAnalyzer от перетаскивания предпочитаемых псевдонимов, создайте список разрешений псевдонимов в файле параметров и PSScriptAnalyzer, чтобы использовать файл параметров. Например, чтобы отключить PSScriptAnalyzer от перетаскивания cd, который является псевдонимом Set-Location, задайте для содержимого файла параметров следующее.

# PSScriptAnalyzerSettings.psd1

@{
    'Rules' = @{
        'PSAvoidUsingCmdletAliases' = @{
            'allowlist' = @('cd')
        }
    }
}

Пример

Неправильный

gps | Where-Object {$_.WorkingSet -gt 20000000}

Правильно

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}