Переменная 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" /y

PowerShell (Администратор) — запускать целиком:

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 PATH

PowerShell — по одной строке:

$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.
  • Уберите пустые «;;» и дубли.
  • Проверьте, что каталоги действительно существуют.

Исправление через интерфейс

  1. Win+R → sysdm.cpl → «Дополнительно» → «Переменные среды».
  2. Верните базовые каталоги Windows:
    C:\Windows\system32
    C:\Windows
    C:\Windows\System32\Wbem
    C:\Windows\System32\WindowsPowerShell\v1.0\
    C:\Windows\System32\OpenSSH\
  3. Добавьте нужные инструменты: Git/Python/Node и т. п.
  4. Сохраните и перезайдите в учетную запись.

Исправление через 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 не используются.

Читайте также: