Переменная PATH сломалась в Windows 10/11 — как восстановить (2025)
Ошибки «не является внутренней или внешней командой», пропали python/git/winget. Обычно проблема в PATH. Разбираем быстрый и безопасный ремонт.
Коротко: быстрые проверки
- Перезайдите в учетную запись или перезагрузите ПК.
- echo %PATH% — проверьте, не пусто ли и без лишних кавычек.
- Если проблема в одной программе — переустановите её.
Резервная копия
CMD (Администратор) — запускать целиком:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "%USERPROFILE%\Desktop\env_system_backup.reg" /y
reg export "HKCU\Environment" "%USERPROFILE%\Desktop\env_user_backup.reg" /yPowerShell (Администратор) — запускать целиком:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "$env:USERPROFILE\Desktop\env_system_backup.reg" /y
reg export "HKCU\Environment" "$env:USERPROFILE\Desktop\env_user_backup.reg" /yПроверка и типичные ошибки
CMD — по одной строке:
echo %PATH%
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH
reg query "HKCU\Environment" /v PATHPowerShell — по одной строке:
$env:PATH
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name PATH | Select-Object -ExpandProperty PATH
Get-ItemProperty "HKCU:\Environment" -Name PATH | Select-Object -ExpandProperty PATH- Не ставьте кавычки вокруг всего PATH.
- Уберите пустые «;;» и дубли.
- Проверьте, что каталоги действительно существуют.
Исправление через интерфейс
- Win+R → sysdm.cpl → «Дополнительно» → «Переменные среды».
- Верните базовые каталоги Windows:
C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Windows\System32\WindowsPowerShell\v1.0\ C:\Windows\System32\OpenSSH\ - Добавьте нужные инструменты: Git/Python/Node и т. п.
- Сохраните и перезайдите в учетную запись.
Исправление через PowerShell
PowerShell (Администратор) — запускать целиком:
$base = @("C:\Windows\system32","C:\Windows","C:\Windows\System32\Wbem","C:\Windows\System32\WindowsPowerShell\v1.0\","C:\Windows\System32\OpenSSH\") -join ";"
[Environment]::SetEnvironmentVariable("PATH", $base, "Machine")
$userAdd = @("$env:LOCALAPPDATA\Microsoft\WindowsApps","$env:LOCALAPPDATA\Programs\Python\Python312\","$env:LOCALAPPDATA\Programs\Python\Python312\Scripts\","C:\Program Files\Git\cmd") -join ";"
$currentUser = [Environment]::GetEnvironmentVariable("PATH", "User")
$newUser = (($currentUser + ";" + $userAdd).Split(";") | Where-Object {{ $_ -and (Test-Path $_) }} | Select-Object -Unique) -join ";"
[Environment]::SetEnvironmentVariable("PATH", $newUser, "User")
Write-Host "Готово. Откройте новую консоль."CMD — по одной строке:
where cmd
where powershell
where ping
where python
where gitПроверка после правок
- echo %PATH% — читабельные пути через «;».
- python/git/winget — находятся и показывают версию.
- Если нет — проверьте наличие программ и корректность путей.
Полезные советы
- Не раздувайте PATH.
- Порядок строк влияет на выбор версии утилиты.
- Откат — двойной клик по .reg, затем перезагрузка.
Когда лучше позвать мастера
Если шаги не помогли и ошибки возвращаются — подключусь удаленно, аккуратно восстановлю компоненты и сохраню данные.
Ещё по теме
FAQ
Команда не находится — что еще проверить?
Откройте новое окно консоли, проверьте установку программы и точность пути.
Какие каталоги обязательны в System PATH?
C:\Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\; C:\Windows\System32\OpenSSH\.
Можно ли держать всё в User PATH?
Да, это даже удобнее. Системный оставляйте минимальным.
Нужны ли кавычки в PATH?
Нет, кавычки внутри PATH не используются.