Инсталлятор ругается на временные файлы, распаковка не стартует, а скачанные EXE молча закрываются. Чаще всего сломаны переменные TEMP/TMP или у папки нет прав. Исправим пути, создадим каталог, выдадим права и наведём порядок.

TEMP/TMP сломаны: установщики падают и «Не удаётся создать временный файл» — как исправить (2025)

Что проверить сразу

  • На диске C есть хотя бы 5 ГБ свободного места.
  • Системная папка Temp существует и доступна: %USERPROFILE%\AppData\Local\Temp.
  • Антивирус не блокирует распаковку (посмотрите «Защита Windows» → «Журнал защиты»).
Нужна помощь? Восстановлю переменные среды TEMP/TMP, права и запущу установщик без ошибок.

1) Узнать, куда сейчас смотрят TEMP и TMP

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

echo %TEMP%
echo %TMP%

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

$env:TEMP
$env:TMP

Если путь указывает на несуществующую папку или сетевой ресурс — исправим.

2) Создаём папку Temp и выдаём права

CMD (Администратор) — вставить целиком:

set "TP=%USERPROFILE%\AppData\Local\Temp"
if not exist "%TP%" mkdir "%TP%"
icacls "%TP%" /inheritance:e
icacls "%TP%" /grant "%USERNAME%":(OI)(CI)F /T
attrib -R -S -H "%TP%"

Если система находится в домене и есть политики, возможно, права сбрасываются — уточните у администратора.

3) Исправляем переменные среды

  1. Win+Rsysdm.cpl → вкладка «Дополнительно» → кнопка «Переменные среды…».
  2. В блоке «Переменные пользователя» и «Системные переменные» укажите для TEMP и TMP: %USERPROFILE%\AppData\Local\Temp (для пользователя) и C:\Windows\Temp (для системы).
  3. Нажмите «ОК», перезагрузитесь.

4) Чистим Temp и настраиваем автоматическую уборку

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

$t = "$env:USERPROFILE\AppData\Local\Temp"
Get-ChildItem $t -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# Включим «Контроль памяти» (Storage Sense) для автоматической очистки
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" /v 01 /t REG_DWORD /d 1 /f

5) Перенос TEMP/TMP на другой диск (по желанию)

Создайте папку, например D:\Temp, и пропишите её в переменных среды (для пользователя). Не ставьте путь на сетевые папки.

6) Диагностика: что мешает

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

Get-ChildItem Env: | Where-Object {{$_.Name -in "TEMP","TMP"}}
Get-MpThreatDetection | Select-Object DetectionTime, Resources, Action
fsutil fsinfo volumeinfo C:

Если файловая система повреждена — выполните проверку диска.

7) Целостность системы

CMD (Администратор) — по одной строке:

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

FAQ

Переменные вернулись к старым после перезагрузки.

Вероятно, действует групповая политика или скрипт входа. Попросите системного администратора проверить GPO.

Очистка Temp удалит «важные» файлы?

Нет, Temp содержит временные файлы. Закройте программы перед удалением — и всё пройдёт безопасно.

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