Windows зависает на «Getting Windows Ready, Don’t Turn Off Computer»
Это не в первый раз, когда я сталкиваюсь с сообщением Getting Windows Ready. Don’t turn off your computer
, и система зависает на этом этапе на несколько часов при перезагрузке или выключении Windows. Чаще всего эта проблема возникает на серверах с Windows Server 2022, 2019 и 2016 после установки обновлений Windows или при добавлении/удалении ролей и компонентов (но подобное может случиться и на Windows 10 и 11).
Когда появляется такое сообщение, основная рекомендация — наберитесь терпения и дождитесь завершения установки обновлений и компонентов. Если вы регулярно устанавливаете обновления Windows на компьютере, в редких случаях процесс может занять более часа. Если же обновления не ставились долго или производительность компьютера низкая, установка может длиться несколько часов.
Однако в некоторых случаях компьютер может «застрять» на экране «Preparing Windows» на часы, дни или даже неопределённо долго. Если же необходимо срочно выключить или перезагрузить компьютер, процесс можно прервать принудительно (конечно, существует риск повреждения системного образа, но иногда другого выхода просто нет).
Далее рассмотрим, как корректно завершить все фоновые процессы на компьютере, который завис при установке обновлений или подготовке образа.
Суть метода в том, что во время этого этапа образ обслуживания Windows доступен в сети. Хотя удалённо по RDP нельзя подключиться к рабочему столу, получить удалённый доступ к компьютеру через административные инструменты можно.
Для этого потребуется другой компьютер под управлением Windows в той же локальной сети (LAN). Сначала проверьте, доступен ли «зависший» компьютер по сети и открыт ли порт SMB (445):
Test-NetConnection 192.168.123.10 -port 445
Откройте оснастку «Службы» (services.msc
) и удалённо подключитесь к проблемному хосту (в меню Действие → Подключиться к другому компьютеру, укажите имя или IP-адрес удалённого сервера).
В списке служб найдите Windows Modules Installer. Эта служба зачастую «зависает» в состоянии «Остановки». По всей видимости, именно она не даёт Windows корректно перезагрузиться или выключиться.
Кнопки управления службой TrustedInstaller в графическом интерфейсе недоступны — её нельзя остановить или приостановить. Имя конечного файла службы указано в свойствах (обычно это C:\Windows\servicing\TrustedInstaller.exe
).
Чтобы принудительно прекратить зависшую службу, нужно воспользоваться командной строкой удалённого компьютера. Для этого можно использовать утилиту PsExec. Откройте командную строку на своём компьютере и выполните команду:
PsExec.exe \\192.168.13.10 -i -u localadminname powershell.exe
Где:
192.168.13.10
— имя или IP-адрес удалённого компьютера для подключения;localadminname
— учётная запись с правами администратора на удалённом компьютере (будете запрошены пароль);- Если не указать
-u localadminname
, будут использованы текущие учётные данные пользователя (удобно в доменной среде); powershell.exe
— команда открывает PowerShell-консоль на удалённом компьютере.
Просмотрим, какие процессы занимают наибольшее количество оперативной памяти. Вывести список из 10 процессов с максимальным потреблением RAM можно командой:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 Name, Id, @{Name="Memory (MB)"; Expression={[math]::round($_.WorkingSet / 1MB, 2)}}
А по загрузке процессора:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, @{Name="CPU Time (s)"; Expression={[math]::round($_.CPU, 2)}}
Как видно, есть высокая нагрузка от процесса TiWorker.exe
. Этот процесс (Trusted Installer Worker) является ключевым компонентом службы Windows Modules Installer (TrustedInstaller
). Эта служба отвечает за установку обновлений и компонентов системы Windows.
Проверим, как долго этот процесс работает:
Get-Process TiWorker | Select-Object Id, Name, CPU, WorkingSet, StartTime
Проверим, какие службы «зависли» в состоянии «Остановки»:
Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
Чтобы принудительно завершить службу TrustedInstaller и все связанные с ней процессы, выполните команду:
taskkill /IM TrustedInstaller.exe /F
Вы можете остановить службу TrustedInstaller удалённо, не подключаясь к командной строке Windows. Используйте команду:
pskill.exe \\192.168.13.10 TrustedInstaller.exe
Или, если нужно указать учётные данные пользователя для подключения:
taskkill.exe /s 192.168.13.10 /u woshub\admin_account /p MyPassw0rd! /im TrustedInstaller.exe
После этого на экране зависшего сервера должно появиться сообщение «Завершение работы». Спустя несколько секунд система должна корректно перезагрузиться.
В целом, принудительное завершение работы службы TrustedInstaller не рекомендуется. Однако если компьютер долго «зависает» на этапе подготовки Windows, иной альтернативы кроме принудительной перезагрузки или выключения зачастую нет.
После загрузки Windows проверьте целостность системного образа. Для этого выполните команды DISM и SFC для обнаружения и устранения ошибок:
dism.exe /online /cleanup-image /restorehealth
sfc /scannow