Обычно первое, что нужно сделать, это попробовать завершить работу в безопасном режиме, и, если это работает, использовать MSConfig, чтобы отключить все несущественные службы и процессы запуска, и протестировать снова. Если это сработает, вы начнете включать их до тех пор, пока не получите ошибку.
Один очень простой метод, который иногда помогает, - это открыть диспетчер задач, переключиться на процессы и оставить его открытым, пока вы пытаетесь завершить работу. Довольно часто диспетчер задач остается открытым достаточно долго, чтобы вы могли видеть, какие процессы требуют много времени для завершения работы и могут идентифицировать ошибку. (В некоторых случаях диспетчер задач рано отключается, но вы можете перезапустить его снова)
Другой альтернативой является Process Monitor от Sysinternals/Microsoft, который может показать вам, что происходит (например, файловая / сетевая активность) при завершении работы.
На продвинутом уровне у Microsoft есть несколько инструментов для повышения производительности, которые помогают OEM-специалистам отслеживать и диагностировать проблемы запуска и завершения работы. Я никогда не использовал их и учитывая их целевой рынок, они могут быть сложными в использовании, но если вы заинтересованы, ищите Xbootmgr.exe