Если при выполнении команды в PowerShell вы получили сообщение вида «Имя ‘Get’ не распознано как имя командлета», не спешите паниковать. Такая ошибка встречается часто и обычно устраняется последовательной диагностикой. Ниже — развернённое руководство: причины, проверочные шаги, конкретные команды и рекомендации, которые помогут найти и исправить проблему.
Почему появляется ошибка «…не распознано как имя командлета»
Сообщение означает, что среда PowerShell не нашла команду или исполняемый файл с указанным именем. Возможные причины:
- Неполное или некорректное имя команды. В PowerShell имена командлетов (например, Get-ChildItem) обычно нечувствительны к регистру, но опечатки, пропуски или обрезанные имена (например, «Get» вместо «Get-ChildItem») приведут к ошибке.
- Команда — не встроенный командлет, а функция, алиас или внешний исполняемый файл, который недоступен. Например, вы могли ожидать, что функция из пользовательского профиля или модуль доступен, но он не загружен.
- Не установлен нужный модуль или он находится в директории, не включённой в PSModulePath. Многие команды поставляются в виде модулей (например, модули Azure, VMware и т. п.). Если модуль отсутствует или повреждён — команда не найдётся.
- Проблемы с путём к исполняемым файлам (PATH). Если вы запускаете внешнюю программу (exe) и она не в PATH, PowerShell не найдёт её; запуск из текущей директории требует явного указания (.).
- Повреждён профиль PowerShell или конфигурация автозагрузки модулей. В профиле могут быть определены функции/алиасы, без которых ожидаемая команда недоступна.
- Версия PowerShell не поддерживает командлет. Некоторые команды появились в более новых версиях PowerShell; в старой версии их будет нет.
Шаги диагностики — что проверить в первую очередь
- Проверьте правильность написания.
Используйте автодополнение: начните вводить команду и нажмите Tab. Пример опечатки:
Get-ChildItmвместоGet-ChildItem. - Уточните, что вы хотите выполнить: командлет, функция, алиас или внешний файл.
Команды можно искать так:
Get-Command -Name Get-ChildItem Get-Command -Name имя_команды -AllЕсли Get-Command ничего не возвращает, команда недоступна.
- Проверьте наличие модуля и автозагрузку.
Список доступных модулей:
Get-Module -ListAvailableЕсли нужного модуля нет в списке, установите его (если он доступен в репозитории) или импортируйте вручную:
Install-Module -Name ИмяМодуля -Scope CurrentUser Import-Module ИмяМодуляПримечание: начиная с PowerShell 3, модуль обычно автозагружается при первом обращении к командлету, но если модуль лежит не в PSModulePath — автозагрузка не сработает.
- Проверка пути модулей (PSModulePath).
$env:PSModulePath -split ';'В результате вы увидите директории, где PowerShell ищет модули. Если модуль хранится в другой папке — либо переместите его в одну из этих директорий, либо добавьте путь в PSModulePath.
- Если команда — внешний exe, проверьте PATH.
Выведите переменную PATH:
$env:PATH -split ';'Ищите нужную папку. Для поиска конкретного исполняемого файла можно использовать:
Get-Command -Name имя_программы -Type ApplicationЧтобы запустить программу из текущей папки, используйте
.имя.exe. - Проверьте профиль PowerShell.
Путь к профилю и содержание:
$profile Get-Content $profileЗапустите PowerShell с отключённым профилем, чтобы проверить, не в нём ли проблема:
powershell -NoProfile pwsh -NoProfileЕсли ошибка уходит — правьте или восстановите профиль.
- Проверьте версию PowerShell.
$PSVersionTable.PSVersionЕсли командлет появился в более новой версии, обновление PowerShell решит проблему.
- Посмотрите помощь и события ошибок.
Get-Help ИмяКоманды -Full Get-EventLog -LogName Application -Newest 50Get-Help полезен, когда команда найдена, но вызывает ошибки из-за синтаксиса. Системные журналы помогут при проблемах с модулями или загрузкой.
Практические примеры и типичные сценарии
- Опечатка в имени:
Ошибка:
Get-ChildItm : Имя 'Get-ChildItm' не распознано...
Решение: исправить наGet-ChildItemили использовать Tab. - Команда из модуля не установлена:
Пример: вы пытаетесь использовать командлет из модуля Az или VMware, но он не найден.
Install-Module -Name Az -Scope CurrentUser Import-Module AzПроверьте наличие и версию модуля через
Get-Module -ListAvailable Az. - Вызов exe в текущей папке:
Если в папке есть исполняемый файл
tool.exe, попытка запустить простоtoolможет не сработать. Нужно:.tool.exe. - Алиасы и пользовательские функции:
Если вы привыкли запускать функцию из старого профиля, но она больше не определена, посмотрите алиасы:
Get-Alias, и функции:Get-Command -CommandType Function. - Проверка доступности команды во всех местах:
Get-Command -Name имя* -AllКоманда покажет все совпадения: командлеты, функции, приложения и т. п., и их путь.
Дополнительные рекомендации
- Используйте
Get-HelpиGet-Commandкак первые инструменты при непонятных сообщениях об ошибке. - Для установки модулей из репозиториев применяйте
Install-Module(требуются права и, возможно, регистрация репозитория). - Если в системе несколько версий PowerShell, убедитесь, что вы используете ту версию, где доступны нужные модуль и командлеты.
- При отсутствии явных причин попробуйте выполнить PowerShell от имени администратора — некоторые операции требуют повышенных прав.
- Если не удаётся разобраться — опишите точную команду и полное сообщение об ошибке и обратитесь к сообществу: при наличии конкретики специалистам намного проще помочь.
Короткая сводка для быстрого решения: проверьте орфографию и автодополнение, выполните Get-Command и Get-Module -ListAvailable, проверьте $env:PSModulePath и $env:PATH, запустите PowerShell без профиля и убедитесь в версии PowerShell. Системный и пошаговый подход обычно позволяет быстро найти причину и устранить ошибку.

