Введение / Зачем это нужно
Командная строка — фундаментальный инструмент для диагностики, настройки сети и запуска скриптов. Когда система отвечает «“cmd” не является внутренней или внешней командой», это не значит, что исполняемый файл удалён. В 99% случаев сбилась системная переменная Path, и Windows просто перестала искать утилиты в стандартных каталогах. Вернуть работоспособность терминала можно за несколько минут, не прибегая к сбросу настроек или переустановке ОС.
Требования / Подготовка
Перед началом убедитесь, что:
- Вы используете учётную запись с правами администратора.
- Системный диск не изменился (обычно это
C:). - Вы готовы перезапустить терминалы или выйти из сеанса для применения новых переменных окружения.
Шаг 1: Восстановление пути через интерфейс переменных среды
Графический редактор позволяет безопасно вернуть стандартные каталоги.
- Нажмите
Win + R, введитеsysdm.cplи нажмите Enter. - Перейдите на вкладку Дополнительно и нажмите кнопку Переменные среды внизу окна.
- В блоке «Системные переменные» найдите строку
Path, выделите её и нажмите Изменить. - Просмотрите список. Если в нём отсутствуют
C:\Windows\System32или%SystemRoot%\System32, нажмите Создать и добавьте этот путь. Также добавьтеC:\Windows(или%SystemRoot%), если его нет. - Подтвердите изменения, нажимая ОК во всех окнах.
⚠️ Важно: Переменные окружения применяются только к новым процессам. Закройте все открытые окна терминалов, а затем перезапустите Проводник через Диспетчер задач (
explorer.exe→ Перезапустить), чтобы изменения подхватились системой.
Шаг 2: Программная правка через PowerShell
Если интерфейс зависает или недоступен, используйте консоль администратора.
- Откройте меню «Пуск», введите PowerShell, нажмите правой кнопкой и выберите Запуск от имени администратора.
- Выполните команду, которая добавит системные пути в конец переменной
Pathбез перезаписи пользовательских записей:
$currentPath = [Environment]::GetEnvironmentVariable("Path", "Machine")
$systemDirs = ";C:\Windows\System32;C:\Windows"
[Environment]::SetEnvironmentVariable("Path", "$currentPath$systemDirs", "Machine")
- Перезагрузите компьютер для гарантированного применения изменений на уровне сессии.
Шаг 3: Проверка целостности системных файлов
Если путь в Path указан верно, но ошибка сохраняется, возможно повреждён сам cmd.exe или связанные библиотеки.
- В том же окне PowerShell выполните прямой запуск утилиты проверки (указываем полный путь, так как
Pathможет всё ещё не обновиться):
C:\Windows\System32\sfc.exe /scannow
- Дождитесь завершения сканирования. Утилита автоматически заменит повреждённые системные файлы на оригинальные из хранилища компонентов Windows.
- При обнаружении ошибок, которые
sfcне может исправить, запустите восстановление образа системы:
C:\Windows\System32\Dism.exe /Online /Cleanup-Image /RestoreHealth
Проверка результата
Откройте новое окно терминала. Введите команду:
cmd /k ver
Если в ответе отобразилась версия вашей ОС без сообщений об ошибках, система восстановила доступ к командной строке. Дополнительно проверьте целевой путь исполняемого файла:
echo %COMSPEC%
Ожидаемый результат: C:\Windows\system32\cmd.exe. Если выводится корректный путь, гайд завершён успешно.
Возможные проблемы
- Отказано в доступе при сохранении Path: Убедитесь, что редактируете именно системную переменную, а не пользовательскую. Для правки системных параметров требуются повышенные привилегии.
- Переменная Path обрезается или не сохраняется: Windows имеет лимит на длину строки. Удалите неиспользуемые пути сторонних утилит из списка, прежде чем добавлять системные каталоги.
- Антивирус блокирует запуск: Некоторые защитные решения помечают
cmd.exeкак подозрительный при вызове из скриптов. ДобавьтеC:\Windows\System32\cmd.exeв исключения файлового монитора вашего антивируса. - Файл
cmd.exeфизически отсутствует: Воспользуйтесь командойDISMиз Шага 3 или выполните точечное восстановление системы до даты, когда командная строка работала корректно.