n1ro°
RU

Ошибки и коды · Инструкция

PowerShell не распознаёт команду `wsl` — что проверить

Команда wsl не распознана в PowerShell — сначала выясните, отсутствует ли `wsl.exe` вообще или проблема только в конкретной оболочке. Проверьте `where.exe wsl`, `Get-Command wsl.exe` и `wsl.

Редакция N1RO · Проверено

Короткий ответ

Сначала проверьте `where.exe wsl` и запуск `wsl.exe` из нативного Windows Terminal/PowerShell. Если файла/компонента нет, включите Windows Subsystem for Linux штатным способом и установите/обновите WSL; не добавляйте случайный путь вручную.

Почему PowerShell может не находить wsl.exe

Сообщение «wsl is not recognized» бывает по двум классам причин: команда действительно недоступна, потому что компонент/пакет WSL не установлен, либо текущий процесс не видит системный `wsl.exe` из-за PATH/архитектуры/нестандартной оболочки. Microsoft отдельно отмечает случаи с ненативными shell-процессами. Поэтому прежде чем переустанавливать Ubuntu, нужно проверить сам Windows executable и optional feature.

Важно: Не скачивайте `wsl.exe` с посторонних сайтов и не добавляйте случайный файл в PATH — команда должна приходить из Windows/официального WSL.

Проверка PATH и самой команды

  1. В PowerShell выполните `where.exe wsl` и `Get-Command wsl.exe -ErrorAction SilentlyContinue`; сравните результат с обычным Windows Terminal/Command Prompt.
  2. Попробуйте `wsl.exe --status`; если команда есть, но alias/функция `wsl` конфликтует, используйте полное имя executable и разберите профиль PowerShell.
  3. Если `wsl.exe` отсутствует, проверьте установку WSL через официальный `wsl --install`/Windows Features в зависимости от версии Windows.
  4. Для WSL 2 убедитесь, что включена Virtual Machine Platform и аппаратная виртуализация, затем перезагрузите Windows после изменения optional features.
  5. После установки выполните `wsl --update` и `wsl --status`, затем уже устанавливайте/запускайте дистрибутив — это отделяет проблему команды от Linux-образа.

Совет: Если `wsl.exe` работает в cmd, но не в одном PowerShell-профиле, сначала исключите alias, функцию и пользовательский профиль.

Когда нужно устанавливать компонент WSL

  • Не добавляйте в PATH найденный в интернете exe-файл: `wsl.exe` должен приходить из Windows/официального пакета WSL.
  • Если команда работает в cmd, но не в одном PowerShell-профиле, проблема локальнее WSL; временно запустите PowerShell без пользовательского профиля.
  • На управляемом корпоративном ПК optional features могут контролироваться политикой — установка требует администратора/IT.
  • Отсутствие команды `wsl` не исправляется переустановкой Ubuntu из Store, пока Windows-компонент/исполняемый файл недоступен.

Предупреждение: После включения optional features перезагрузите Windows до следующей диагностики: часть компонентов WSL не становится активной мгновенно.

Почему Ubuntu здесь не первопричина

Контрольный результат — `where.exe wsl` возвращает системный путь, `wsl --status` отвечает, а `wsl -l -v` показывает список или корректно сообщает, что distro ещё не установлена. Только после этого имеет смысл разбираться с конкретным Linux. Так вы не смешиваете проблему Windows CLI с проблемой Ubuntu/WSL 2 kernel.

Особенности нативной и ARM64 оболочки

Когда `where.exe wsl` возвращает системный путь, а `wsl.exe --status` работает, проблема базовой команды решена. Дальше `wsl -l -v` должен либо показать дистрибутивы, либо корректно сообщить, что их ещё нет. Только на этом этапе имеет смысл разбираться с конкретной Ubuntu или другой Linux-средой.

Контрольные команды после восстановления

Если команда видна в Command Prompt, но исчезает в обычном PowerShell, запустите PowerShell без пользовательского профиля и повторите `Get-Command`. Так можно отделить проблему WSL от испорченного PATH/alias. На ARM64 также учитывайте архитектуру процесса и рекомендацию Microsoft использовать нативный shell.

Проверка полного имени исключает конфликт PowerShell

Если `wsl.exe --status` работает, а короткая команда `wsl` нет, выполните `Get-Command wsl -All`: так видны alias, функции и другие объекты с тем же именем. Когда не находится и `wsl.exe`, проблема уже не в PowerShell‑профиле — проверяйте установку официального WSL и Windows optional features.

Что учитывать

Сообщение «wsl is not recognized» бывает по двум классам причин: команда действительно недоступна, потому что компонент/пакет WSL не установлен, либо текущий процесс не видит системный `wsl.exe` из-за PATH/архитектуры/нестандартной оболочки. Microsoft отдельно отмечает случаи с ненативными shell-процессами. Поэтому прежде чем переустанавливать Ubuntu, нужно проверить сам Windows executable и optional feature.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Troubleshooting Windows Subsystem for Linux). Пример и формулировки — редакция N1RO на 2026-09-23.