# Windows XP: окончательный разбор цикла входа и выхода и план восстановления

Дата проверки: 15 сентября 2026 года.

Документ объединяет первоначальные подборки ответов, дополнительный ответ Qwen 3.8 Max, два новых отчёта и проверку ключевых технических утверждений. Это план диагностики и ремонта, а не заключение по исследованному компьютеру: исходные журналы `.evt`, кусты реестра и системные файлы XP не предоставлены.

## 1. Главный вывод и рекомендуемый старт

**Чередование «Загрузка личных параметров» → «Сохранение параметров» наиболее похоже на цикл входа и выхода пользователя. Само по себе оно не означает перезагрузку Windows, повреждение загрузчика или проблему сети.**

В материалах смешаны два разных сценария:

| Сценарий | Наблюдение | Что проверять первым |
| --- | --- | --- |
| Немедленный выход | Рабочий стол не появляется либо мелькает; сообщения повторяются каждую секунду | Цепочку запуска Userinit, реестр Winlogon, IFEO, доступность файлов и стороннее вмешательство |
| Отложенный выход | Пользователь действительно работает за рабочим столом от 30 секунд до 20 минут, затем происходит выход | Сторонний инициатор завершения сеанса, winbypass, автозагрузка, задачи и обработчики Winlogon |
| Перезагрузка | Повторяется POST/экран BIOS или полный запуск Windows; меняются признаки загрузки системы | Отдельную диагностику перезагрузки, аварийного завершения и оборудования |

**Для вашего текущего описания начать следует с первого сценария.** Если длительная работа рабочего стола подтверждена непосредственным наблюдением, использовать также ветку отложенного выхода.

Ближайшие действия:

1. Сохранить образ системного раздела и текущие журналы.
2. Остановить автоматический повторный вход, чтобы увидеть результат одной ручной попытки.
3. Проверить безопасный режим и другую локальную учётную запись.
4. Для немедленного выхода проверить фактическую цепочку Userinit → оболочка. Если значения и файлы уже достоверно проверены в этой установке, перейти к IFEO, зависимостям и сторонним компонентам.
5. Обратимо отключить подтверждённый winbypass и перезагрузиться.
6. Если ошибка TermService/126 сохраняется, установить отсутствующий модуль по конфигурации и трассировке, а не заменять DLL наугад.
7. Включить аудит XP и Userenv; восстановить только выявленное повреждение.

**Не выполнять рекомендации удалить `dpcdll.dll`, менять активационные файлы, очищать доменные параметры, запускать FIXMBR/FIXBOOT или массово удалять ветки реестра в качестве универсального лечения.**

## 2. Какие материалы рассмотрены

| Материал | Что в нём содержится |
| --- | --- |
| `council-30-20-event-6009-logoff-sysevent-15-7023-126-1-3.md` | Mercury 2, Mistral Small 4, Claude Sonnet 5, Grok 4.6, GPT-6 Astra и сводка |
| Одноимённый файл с суффиксом `(1)` | MiniMax M3, Kimi K3, GLM 5.3, DeepSeek V4.1 Flash, Step 3.7 Flash и сводка |
| Qwen 3.8 Max | Текст непосредственно в сообщении пользователя |
| Файл «Вставленная ​​уценка.md» | Отчёт «Архитектура инициализации Winlogon и протокол ликвидации циклического сброса сеанса Windows XP»; по контексту сообщения рассматривается как материал Gemini Flash 3.8, но сам файл не подписан названием модели |
| Файл, оканчивающийся на `Wind.md` | Отчёт «Диагностика и устранение циклической загрузки профиля в Windows XP» с явной подписью CoreWise Deep Research |

Названия моделей взяты из предоставленных материалов; их происхождение отдельно не подтверждалось.

## 3. Что известно, а что пока только предполагается

В исходных подборках заявлены штатные значения Userinit/Shell, совпадение MD5 `userinit.exe` и `explorer.exe` с оригиналом, разные папки двух профилей, наличие winbypass, ошибки TermService/126 и ранее исправленная проблема с `dpcdll`. Эти сведения полезны, но представляют собой описание выполненных проверок, а не доступные для независимого анализа доказательства.

| Сведение | Допустимый вывод | Чего оно не доказывает |
| --- | --- | --- |
| Сообщение «Сохранение параметров» | Система выполняет соответствующую фазу завершения/выгрузки окружения | Кто вызвал выход и каким API |
| Нет новых 6009 между циклами | При полном исправном журнале это поддерживает версию отсутствия перезагрузки | Что любую перезагрузку можно исключить только по отсутствующей записи |
| Каждые 1–3 секунды записывается 7023 | Есть повторяющийся отказ службы | Что пользовательские сеансы завершаются с той же частотой |
| Работают SkypeUpdate, SecurityCenter, индексирование | Соответствующие компоненты системы проявляли активность | Что пользовательский рабочий стол существовал и был доступен всё это время |
| Правильный Userinit и совпадающий хеш файла | Уменьшается вероятность повреждения именно значения и именно файла | Что файл удалось запустить, доступны его зависимости и нет IFEO-перенаправления |
| Разные папки профилей | Это нормальная конфигурация разных пользователей | Что все права, пользовательские настройки и кусты профилей исправны |
| Исчезла прежняя ошибка WPA | Данная ошибка больше не зарегистрирована в проверенном интервале | Что кряк успешно подавил окно или что активационная подсистема полностью исправна |
| APIPA 169.254.x.x | Возможен отказ получения адреса по DHCP | Причину выхода из локального сеанса, поломку сетевой карты или состояние всей сети |

Нельзя установить вероятность «70%», «90%» или «почти всегда» по этим данным. Такие числа в ответах не опираются на приведённую статистику.

## 4. Разбор нового ответа Qwen 3.8 Max

### Что в нём полезно

- Правильная расшифровка кода 126.
- Идея исключить winbypass отдельным экспериментом.
- Проверка IFEO и ошибок приложений/служб.
- Различение штатной автономной работы Windows и возможной зависимости сторонних программ от сети.
- Предложение включить Userenv и более подробные экранные статусы.

### Что требует исправления

**1. Для выхода из собственного интерактивного сеанса не требуется SeShutdownPrivilege.** Эта привилегия нужна для соответствующих операций выключения и перезагрузки. `ExitWindowsEx(EWX_LOGOFF)` доступен процессу в интерактивном сеансе пользователя. Поэтому искать виновника исключительно среди привилегированных служб неверно. Сам текст «Сохранение параметров» не доказывает конкретный вызов API. [Microsoft: ExitWindowsEx](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-exitwindowsex).

**2. Событие 1074 — не универсальный регистратор logoff.** Оно связано с инициированием выключения/перезагрузки и источником User32, а не с обещанной Qwen записью SCM о каждом выходе пользователя. Искать его можно для проверки гипотезы выключения/рестарта. Отсутствие 1074 не исключает программный logoff, а имя `winlogon.exe` в событии не доказывает повреждение `msgina.dll`. Даже при выключении указанным процессом может быть посредник: Microsoft отдельно описывает необходимость трассировки исходного инициатора WMI-запроса. [Microsoft: событие User32/1074](https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/incorrect-shutdown-reason-code-sel), [Microsoft: поиск источника WMI-выключения](https://github.com/MicrosoftDocs/SupportArticles-docs/blob/main/support/windows-server/system-management-components/identify-cause-of-wmi-shutdown.md).

**3. Удалять штатный `dpcdll.dll` нельзя.** Это компонент Microsoft Windows XP, а не синоним кряка. Если файл испорчен, восстанавливают совместимую исправную версию. Его произвольное удаление способно вернуть ошибки активационной подсистемы. [NirSoft: исследование dpcdll.dll из XP](https://xpdll.nirsoft.net/dpcdll_dll.html).

**4. Qwen перепутал название основной DLL Terminal Services.** В штатной XP это `termsrv.dll`. Указание `termsvcs.dll` не является правильным ориентиром для ремонта этой службы. Код 126 не позволяет сразу обвинить ни `termsrv.dll`, ни `rdpwd.sys`, ни `winsta.dll`: отсутствовать может зависимость или неверно заданный модуль. [NirSoft: исследование termsrv.dll из XP](https://xpdll.nirsoft.net/termsrv_dll.html).

**5. Объяснения про DEP, таймер кряка и «logoff ради сохранения целостности реестра» не подтверждены.** Возможность ошибки внедрённого кода существует, но его конкретное поведение неизвестно. Необработанный сбой критического процесса нельзя автоматически описывать как аккуратное завершение одного пользователя.

**6. Исчезновение ошибки WPA не означает, что кряк подавил диалог.** Возможны восстановление файла, изменение пути исполнения, отсутствие нового обращения и другие причины.

**7. Сценарий выхода выполняется после начала выхода.** Если logoff-скрипт завис при обращении к сети, это может задержать уже начавшийся выход, но не объясняет, кто его инициировал. Удаление `Domain`/`DhcpDomain` не является корректным выходом компьютера из домена и не чинит его доверительные отношения. Отключение Netlogon, Browser и W32Time одновременно не позволяет приписать результат одному «таймауту».

**8. Подмена WPA-файлов и изменение OOBETimer не являются диагностическим восстановлением.** Чужая база активации не обязана подходить к этой машине. Volume-лицензирование зависит от канала поставки и соответствующего дистрибутива; произвольный VLK-ключ не превращает любую XP Professional в нужную редакцию поставки. Эти действия исключены из плана ремонта.

**9. Расшифровка UserEnvDebugLevel неточна.** `0x30001` — сочетание NORMAL, LOGFILE и DEBUGGER, а не документированный режим «только предупреждения и ошибки». Для подробного файлового журнала подходит `0x10002`; `0x30002` также включает VERBOSE и дополнительно DEBUGGER. Источник — таблица флагов Microsoft KB221833; подробности приведены в разделе 9.

**Оценка Qwen:** полезные направления поиска есть, но цельный пошаговый план содержит существенные технические ошибки и действия, способные ухудшить систему. Выполнять его целиком не следует.

## 5. Разбор отчёта, предположительно Gemini Flash 3.8

Этот текст лучше многих прежних ответов соответствует именно мгновенному циклу: рассматривает Userinit, IFEO, загрузку куста SOFTWARE и ограничения Recovery Console.

Однако он чрезмерно уверен в том, чего пользователь не подтвердил:

1. В начале объявлено, что дефект воспроизводится во всех безопасных режимах. Это нужно проверить, а не добавлять к исходным фактам.
2. Причина заранее сведена к Userinit/Explorer, а восстановление объявлено исключительно офлайн и состоящим из двух операций. Это слишком узко, особенно при уже проверенных Userinit/Shell и наличии стороннего патчера.
3. Правильное штатное значение содержит завершающую запятую, но история про обязательный парсер и особые сборки без неё не подтверждена приведёнными источниками. Запятую сохраняем; отсутствие одной запятой не выдаём за доказанный диагноз.
4. Строка Userinit не «жёстко зафиксирована» на диске C:. Путь зависит от действительной установки Windows. Полный корректный путь к Explorer также не следует объявлять неправильным только потому, что это не короткое `Explorer.exe`.
5. Штатное завершение Userinit после запуска окружения не является аварией. Завершение Explorer тоже не равно неизбежному выходу пользователя: нельзя строить всю диагностику на такой эквивалентности.
6. Копия `userinit.exe` под именем `wsaupdater.exe` имеет смысл только для подтверждённого старого перенаправления на этот файл. При уже правильном Userinit эта операция бесполезна. Если доступен офлайн-редактор, предпочтительна прямая правка реального повреждения.
7. Удалять всю ветку IFEO или все её значения, включая предложенную команду `delallv`, избыточно. Проверяют конкретное перенаправление, сохраняют его и устраняют только установленную проблему.
8. Нельзя назначать `chkdsk /r` обязательным следующим шагом без оценки состояния диска. Сначала копия, затем проверка по показаниям.
9. Сброс пароля администратора не нужен как обычный этап ремонта входа; он может повредить доступ к данным, защищённым EFS/DPAPI. Если существующий вход доступен, используют его.
10. Случайное имя файла или размещение в Temp не доказывают вредоносность. Автоматическое удаление таких файлов и профилактический `netsh winsock reset` не входят в обоснованный ремонт этого симптома.

Для эталонных значений Userinit/Shell и реальной роли Userinit полезнее первичные описания Microsoft: [Customizing GINA](https://learn.microsoft.com/en-us/archive/msdn-magazine/2005/june/security-briefs-customizing-gina-part-2), [MSGina.dll Features](https://learn.microsoft.com/en-us/windows/win32/secauthn/msgina-dll-features).

**Оценка:** полезная заготовка для ремонта мгновенного входа-выхода, но с недоказанной низкоуровневой механикой, отсутствующей статистикой и слишком широкими удалениями. Текст следует сократить до проверяемых действий.

## 6. Отдельная оценка CoreWise Deep Research

### Главная проблема: Snapshot противоречит основному отчёту

В Snapshot цикл назван «циклической перезагрузкой» и предложены NTLDR, NTDETECT.COM, boot.ini, FIXMBR и FIXBOOT. В основном тексте уже сказано, что это сбой инициализации пользовательского сеанса, а не загрузочного сектора.

**Для описанного входа-выхода Snapshot использовать нельзя.** Если система дошла до загрузки личных параметров, оснований ремонтировать загрузочный сектор только по этому признаку нет. Объяснение про встроенный бесконечный механизм автоматического восстановления также не устанавливает реальный механизм этого цикла в XP.

### Что можно оставить

- Образ/копию перед ремонтом.
- Пробу безопасного режима.
- Подключение SOFTWARE через «Загрузить куст» и правильную выгрузку после работы.
- Проверку Userinit и файла из совместимого дистрибутива.
- Сравнение поведения разных пользователей.
- Восстановительную установку как резервный вариант после точечной диагностики.

### Что исправить

- Удалить неподтверждённые «90%» и безусловное «это не аппаратная поломка». Повреждения диска могут затронуть файлы и реестр.
- Различать исчезновение автоматического повторения и исправление входа: `AutoAdminLogon=0` само по себе не чинит пользователя.
- Успешный вход другого пользователя указывает на область настроек конкретного пользователя, но не доказывает исключительно повреждение NTUSER.DAT. Возможны его автозагрузка, сценарии и политики.
- Не выполнять обязательный `chkdsk /p /r` без признаков повреждения и резервной копии.
- Параметр `/y` у `expand` сам по себе не является ошибкой: он отключает подтверждение перезаписи. В плане ниже он опущен, чтобы оставить возможность проверить перезапись существующего файла. Различать команды Recovery Console и обычного командного интерпретатора всё равно необходимо. [Microsoft: команды Recovery Console](https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/use-recovery-console-not-start).
- Не считать 66 ссылок 66 подтверждениями: среди источников есть современные инструкции и темы про зависание/перезагрузку, которые не подтверждают механизм мгновенного logoff XP.
- Не делать вывод о конкретном антивирусе лишь потому, что он упомянут в одном из источников.

**Оценка CoreWise:** основной текст ближе к задаче, чем Snapshot, но отчёт внутренне несогласован. Его полезные практические шаги включены ниже; рекомендации ремонтировать загрузчик исключены.

## 7. Практическое восстановление: подготовка и доступ к XP

### Шаг 0. Зафиксировать исходное состояние

До изменяющих операций сохранить образ диска или раздела. При признаках отказа накопителя приоритет — максимально щадящее копирование; не начинать с многократных перезагрузок и исправления файловой системы.

Дополнительно сохранить доступные журналы System, Application и Security, а также исходные значения тех параметров, которые будут меняться. Полный экспорт `.reg` не заменяет образ и не является полноценной резервной копией всей системы.

Уточнить только сведения, меняющие дальнейшую ветку:

- XP Home/Professional, x86/x64, Service Pack, язык и реальный каталог Windows;
- локальная консоль или RDP;
- был ли перенос/клонирование диска;
- появляется ли рабочий стол и можно ли им пользоваться;
- повторяется ли проблема у второго пользователя и в безопасном режиме;
- что изменялось непосредственно перед сбоем.

Ниже базовые примеры ориентированы на обычную XP x86 с каталогом `C:\WINDOWS`. Не переносить бинарные файлы x86 в XP x64.

### Шаг 1. Прервать автоматический вход

Во время загрузки до автоматического входа удерживать Shift. Штатная MSGina учитывает Shift, если не настроен `IgnoreShiftOverride`. При успешном подавлении автологон остановится на запросе пользователя. [Microsoft: автоматический вход и Shift](https://learn.microsoft.com/en-us/windows/win32/secauthn/msgina-dll-features).

Если вход доступен хотя бы в безопасном режиме, открыть редактор реестра XP. Если нет — использовать офлайн-метод из следующего шага.

Параметры в `SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`:

| Параметр | Тип | Временное действие |
| --- | --- | --- |
| AutoAdminLogon | REG_SZ | Установить строку `0`, сохранив прежнее значение |
| ForceAutoLogon | REG_SZ | Если уже присутствует со значением `1`, сохранить и временно установить `0`; создавать без необходимости не нужно |

Не менять для этой проверки пароли, SAM, SID и пути профилей.

**Ожидаемый результат:** система позволяет отдельно попробовать ручной вход. Если после него всё равно происходит выход, это и есть неисправность, которую нужно устранить.

### Шаг 2. Правильно открыть реестр установленной XP извне

Подходит загрузочная Windows-среда, совместимая с данным оборудованием, либо другой Windows-компьютер с подключённым диском XP. Не вся современная WinPE запустится на старом процессоре или увидит старый контроллер диска.

**Различать две буквы диска:** в примере среда восстановления видит раздел XP как `E:`, а сама XP при обычной загрузке использовала `C:`. Файл куста открываем с `E:`, но сохранённый путь Userinit должен соответствовать `C:` внутри XP. Не заменять его на `E:` только из-за отображения в WinPE.

1. Определить нужный раздел по содержимому, а не по первой попавшейся папке Windows.
2. Запустить `regedit`, выделить `HKEY_LOCAL_MACHINE`.
3. Выбрать «Файл → Загрузить куст».
4. Открыть `E:\WINDOWS\system32\config\SOFTWARE`.
5. Ввести временное имя `XP_SOFTWARE`.
6. Работать с `HKEY_LOCAL_MACHINE\XP_SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`.
7. После изменений выделить `XP_SOFTWARE` и выполнить «Файл → Выгрузить куст».

Для работы со службами аналогично загрузить файл `SYSTEM` под именем `XP_SYSTEM`.

В офлайн-кусте не предполагать наличие рабочего псевдонима `CurrentControlSet`. Проверить:

```text
HKEY_LOCAL_MACHINE\XP_SYSTEM\Select
```

`Default` определяет набор для следующей обычной загрузки. Например, `Default=2` означает `ControlSet002`. `Current` описывает использованный набор, а `LastKnownGood` — последнюю удачную конфигурацию; это не взаимозаменяемые указатели. Для теста изменяют нужный набор, не все ControlSet сразу, затем выбирают обычную загрузку. Сохранить исходные значения и после правки выгрузить `XP_SYSTEM`.

**Recovery Console с установочного CD — другая среда.** В ней есть ограниченный набор команд и нет обычного regedit. Описанную загрузку кустов нельзя выполнить в ней как в WinPE.

### Шаг 3. Проверить безопасный режим и другого пользователя

Через F8 попробовать безопасный режим без сети и существующую локальную административную учётную запись. Не считать пустой пароль установленным фактом, если он не проверен; использовать действительные учётные данные.

| Результат | Следующий шаг |
| --- | --- |
| Все учётные записи сразу выходят, включая безопасный режим | Офлайн-проверка Winlogon/Userinit/IFEO и стороннего вмешательства |
| Один пользователь входит, другой нет | Проверка настроек, прав, автозагрузки и профиля проблемного пользователя |
| Безопасный режим устойчив, обычный нет | Изоляция сторонних компонентов обычной загрузки |
| Только RDP завершает сеанс, консоль работает | Отдельная ветка Terminal Services и настроек удалённых сеансов |

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

## 8. Проверки, устраняющие причину

### Шаг 4. Userinit, Shell и IFEO

Для обычной установки в `C:\WINDOWS` эталонные значения:

```text
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Userinit    REG_SZ    C:\WINDOWS\system32\userinit.exe,
Shell       REG_SZ    Explorer.exe
```

В редакторе вводятся одиночные обратные слеши и данные без внешних кавычек. Двойные слеши из JSON или некоторых текстовых представлений нельзя автоматически копировать в значение реестра. Запятая сохранена как часть штатного варианта. [Microsoft: пример Userinit и Shell в XP](https://learn.microsoft.com/en-us/archive/msdn-magazine/2005/june/security-briefs-customizing-gina-part-2).

Если эти значения и файлы уже проверены в текущей установке, не заменять их повторно ради самого факта проверки. Следующий уровень:

- реальный запуск и ошибки загрузки зависимостей;
- права на чтение и выполнение;
- перенаправление через IFEO;
- пользовательские переопределения оболочки и сценарии;
- сторонние DLL/службы, вмешивающиеся в создание сеанса.

Проверить точечные подразделы:

```text
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\userinit.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\explorer.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\winlogon.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\logonui.exe
```

При офлайн-проверке вместо `HKLM\SOFTWARE` используется `HKLM\XP_SOFTWARE`.

Если есть `Debugger`, определить, какая программа указана, существует ли она и кем настройка была создана. Само наличие IFEO не означает вирус: это штатный механизм отладки, который может быть использован для перенаправления запуска. При установленном ненужном/сломавшемся перенаправлении экспортировать подраздел и удалить только соответствующий параметр `Debugger`; не удалять все подразделы и значения. [Microsoft: отладка приложений Windows XP](https://learn.microsoft.com/en-us/archive/msdn-magazine/2002/august/windows-xp-escape-from-dll-hell-with-custom-debugging-and-instrumentation-tools-and-utilities-part-2).

Если файл действительно отсутствует или повреждён, восстановить его из доверенного совместимого источника. Размер «около 25 КБ» не является проверкой подлинности. Нужны подходящая версия, происхождение и, по возможности, сравнение с исправным экземпляром этой конфигурации.

Пример распаковки в Recovery Console, **только после определения букв раздела и CD**:

```cmd
expand D:\i386\userinit.ex_ C:\WINDOWS\system32\userinit.exe
```

Пример применим к подходящему дистрибутиву XP x86, содержащему этот файл. Подтверждение перезаписи оценивают после сохранения старого файла. Не перезаписывать исправный более новый файл старым только потому, что имеется установочный CD. `dllcache` — возможный источник, но его содержимое тоже может быть повреждено.

После клонирования дополнительно проверить, сохранились ли буквы разделов и пути. Не редактировать `MountedDevices` наугад: для этого нужна отдельная подтверждённая диагностика назначения букв.

### Шаг 5. Исключить подтверждённый winbypass

Этот шаг имеет высокий приоритет, если наличие патчера в вашей XP действительно подтверждено. При уже проверенных Userinit/Shell переходить к нему без повторного массового восстановления файлов.

В запущенной XP сначала посмотреть конфигурацию службы:

```cmd
sc qc winbypass
```

Если служба действительно существует и это нужный компонент, сохранить тип запуска и путь, затем:

```cmd
sc config winbypass start= disabled
```

После `start=` обязателен пробел. Если служба с таким именем не существует, не создавать её: выяснить фактический способ запуска компонента.

При офлайн-редактировании установить `Start` типа `REG_DWORD` в `4` у подтверждённой службы в выбранном ControlSet. Например, **только если `Select\Default=2`**:

```text
HKEY_LOCAL_MACHINE\XP_SYSTEM\ControlSet002\Services\winbypass
Start    REG_DWORD    4
```

Файл пока не удалять. Перезагрузиться: изменение типа запуска не устраняет уже действующую модификацию памяти. Если патчер менял файлы на диске, отключение службы также не возвращает им оригинальное содержимое.

Дополнительно проверить подтверждённые связанные записи в Run/RunOnce, задачах и `Winlogon\Notify`. Последняя ветка содержит регистрации обработчиков и может включать штатные компоненты. Нельзя очищать её целиком или считать переименование подраздела с сохранением внутри Notify надёжным отключением. [Microsoft: регистрация Winlogon notification packages](https://learn.microsoft.com/en-us/windows/win32/secauthn/registering-a-winlogon-notification-package).

| После отключения | Как трактовать |
| --- | --- |
| Вход и работа стали устойчивыми в повторных проверках | Сильное основание подозревать отключённый компонент или его взаимодействие с системой |
| Вместо рабочего стола появился запрос активации | Проверяемый сеанс не запустился; исходный сбой ещё не проверен |
| Исчезли только 7023 | Отключение повлияло на проблему службы; причина выхода может сохраняться |
| Ничего не изменилось | Гипотеза не подтверждена; проверить другие способы запуска и сохранённые изменения файлов |

Состояние лицензирования разбирать штатными средствами подходящей поставки Windows. Не обещать доступность конкретного способа активации в 2026 году без отдельной проверки. Не заменять эту диагностику новым патчем, чужим `wpa.dbl`, удалением `dpcdll.dll` или изменением OOBETimer.

### Шаг 6. Проверить Terminal Services/126

`126 / 0x7E` — `ERROR_MOD_NOT_FOUND`, «не найден указанный модуль». `0x800700c1` содержит Win32-код `193 / 0xC1`, `ERROR_BAD_EXE_FORMAT`. Эти ошибки загрузки не являются кодами «истёк таймер сеанса». [Microsoft: системные ошибки 0–499](https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-).

В работающей XP собрать:

```cmd
sc qc TermService
sc queryex TermService
sc qfailure TermService
reg query "HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters" /s
```

При офлайн-доступе смотреть соответствующие параметры в выбранном `ControlSet00N` куста XP_SYSTEM.

Проверить:

1. Точное имя службы и полный текст события 7023.
2. Путь `ImagePath` и значение `Parameters\ServiceDll`.
3. Сам файл `termsrv.dll`, если он указан в конфигурации, и его зависимости.
4. Соответствие версии DLL данной XP.
5. Параметры восстановления службы и возможный сторонний повторный запуск.
6. Предшествуют ли ошибки службы выходу или возникают уже после него.

Не фильтровать трассировку по вымышленному штатному `termsrv.exe`: DLL службы обычно исполняется в процессе-хосте. Не задавать `userenv.dll` как имя процесса. Для работающей службы PID помогает найти `sc queryex`; при неудачном запуске нужны события попытки загрузки и конфигурация хоста.

Одиночные `NAME NOT FOUND` в трассировке не обязательно являются ошибкой: поиск DLL может пробовать несколько путей и затем завершиться успешно. Ищется неуспешная загрузка необходимого модуля без последующего успешного разрешения.

Временное отключение TermService допустимо лишь как отдельный эксперимент на копии при локальном доступе, если не нужны RDP/FUS. При единственном доступе через RDP его не выполнять. Сохранить исходный тип запуска; не менять одновременно настройки Fast User Switching и ещё несколько служб.

### Шаг 7. Сеть проверять только по показаниям

Отсутствие DHCP, DNS или Интернета не является штатной причиной закрытия локального сеанса. Для доменных пользователей возможен вход при недоступном контроллере по кэшированным данным; локальная SAM-учётная запись — отдельный случай, не «вход по кэшу домена». [Microsoft: Cached domain logon information](https://learn.microsoft.com/en-us/troubleshoot/windows-server/user-profiles-and-logon/cached-domain-logon-information).

Возможна зависимость стороннего приложения или скрипта от сети. Проверяют её наблюдением и отдельным сравнением условий:

- локальный вход при отключённом адаптере;
- отдельный тест с исправной нужной сетью;
- сопоставление активности конкретного скрипта/программы перед выходом.

Не отключать одновременно Netlogon, W32Time, Browser и DHCP; не удалять `Domain`/`DhcpDomain`; не подменять доменный DNS публичным сервером как универсальное решение.

Если выход сохраняется при отключённом адаптере, это показывает, что наличие работающего подключения не требуется для воспроизведения. Но это не «навсегда исключает сеть»: сторонний код может как раз реагировать на её отсутствие. Такое уточнение исправляет чрезмерную категоричность нескольких прежних ответов.

Политика `Network security: Force logoff when logon hours expire` управляет SMB-соединениями, а не служит универсальным таймером локального рабочего стола. Ограничения удалённых терминальных сеансов также нельзя автоматически переносить на локальный вход. [Microsoft: область действия Force logoff](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj852195%28v%3Dws.11%29).

## 9. Как получить диагностические данные

### 9.1. Журналы событий XP

В XP Professional открыть `secpol.msc` → локальные политики → политика аудита. Включить аудит событий входа — успех/отказ, отслеживание процессов — успех. Сохранить прежние настройки для последующего возврата. В XP Home штатной оснастки secpol.msc может не быть; отсутствие оснастки не чинят созданием случайных параметров безопасности.

| Источник/журнал | Событие | Что оно даёт |
| --- | --- | --- |
| Security | 528 | Успешный вход; проверить тип, пользователя и Logon ID |
| Security | 551 | Инициирование выхода интерактивного пользователя |
| Security | 538 | Завершение сеанса входа; это может быть и сетевой сеанс |
| Security | 592 / 593 | Создание / завершение процесса при включённом аудите |
| Service Control Manager / System | 7023 | Завершение службы с указанной ошибкой |
| Service Control Manager / System | 7031 / 7034 | Неожиданное завершение службы |
| Application | Ошибка приложения/Dr. Watson | Процесс, модуль и исключение, если они были зарегистрированы |
| User32 / System | 1074 | Запрос выключения/перезагрузки; не замена аудиту logoff |
| EventLog / System | 6005 / 6006 / 6009 | Контекст работы журнала и загрузки; учитывать источник и полноту данных |

Старые номера Security сверены по столбцу Legacy Windows Event ID в документации Microsoft. Событие 552 — использование явных учётных данных, а не выход. [Microsoft: Appendix L](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor).

Не делать бинарный вывод «есть 551 — известен виновник; нет 551 — виноват LSASS». Аудит может быть выключен или неполон, а запись не раскрывает произвольный вызов уже работающей программы. Всегда сопоставлять события по одному пользователю и Logon ID.

Если вход невозможен, скопировать журналы с неработающей XP. Типичные пути:

```text
<раздел XP>\WINDOWS\system32\config\SysEvent.Evt
<раздел XP>\WINDOWS\system32\config\AppEvent.Evt
<раздел XP>\WINDOWS\system32\config\SecEvent.Evt
```

При изменённой конфигурации путь задаётся параметром `File` у соответствующего журнала в `Services\Eventlog` выбранного ControlSet. Использовать просмотрщик/парсер с поддержкой старого формата EVT. Если современный просмотрщик не расшифровывает текст сообщения без DLL источника, это не означает пустую запись: сохранить источник, ID, время и строки данных. Включённое сейчас журналирование не восстановит задним числом отсутствующие события.

### 9.2. Userenv: исправленная настройка

```text
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
UserEnvDebugLevel    REG_DWORD    0x00010002
```

В regedit выбрать шестнадцатеричную систему и ввести `10002`. При офлайн-доступе использовать XP_SOFTWARE. Для подробного файлового журнала это исходный рекомендуемый вариант.

| Значение | Сочетание флагов |
| --- | --- |
| 0x00010001 | NORMAL + LOGFILE |
| 0x00010002 | VERBOSE + LOGFILE |
| 0x00030001 | NORMAL + LOGFILE + DEBUGGER |
| 0x00030002 | VERBOSE + LOGFILE + DEBUGGER |

Пути: `%SystemRoot%\Debug\UserMode\Userenv.log` и `Userenv.bak`. Сохранить оба файла после воспроизведения, поскольку журнал ротируется. Qwen верно предлагает подробный режим, но ошибочно называет NORMAL режимом «только предупреждения и ошибки». Основание — оригинальная Microsoft KB221833, доступная в стороннем архиве. [Microsoft KB221833, архивная копия](https://mskb.pkisolutions.com/kb/221833).

Искать первое существенное отклонение **до** начала выхода, ошибки загрузки профиля и обработки политик. Последняя ошибка `UnloadUserProfile` может быть следствием уже начавшегося выхода. После диагностики вернуть прежнее значение.

### 9.3. Подробные экранные сообщения

Необязательное дополнение:

```text
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
VerboseStatus    REG_DWORD    1
```

Если существующий `DisableStatusMessages=1` запрещает статусы, учитывать это ограничение и сохранить его перед изменением. Подробные сообщения помогают определить фазу работы, но не гарантируют имя виновной DLL или точный инициирующий процесс. Последняя надпись на экране не обязательно обозначает причину. [Microsoft: подробные статусы, KB325376 для семейства Server 2003](https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/enable-verbose-startup-shutdown-logon-logoff-status-messages).

### 9.4. Если журналов недостаточно

Использовать подтверждённо совместимый с XP выпуск Process Monitor для запусков процессов, файловых и реестровых обращений. Нельзя обобщать совместимость на все версии «3.x» или использовать текущую загрузку без проверки требований: актуальный Procmon XP не поддерживает. Он не регистрирует каждый произвольный вызов API завершения сеанса. [Microsoft: Process Monitor](https://learn.microsoft.com/en-us/sysinternals/downloads/procmon).

Для прямого установления вызывающего кода может потребоваться отладчик и стек вызовов на копии системы. Это следующий уровень диагностики, а не повод вслепую включать отладчики и page heap для LSASS/Winlogon на единственной рабочей копии.

## 10. Если точечные проверки не помогли

### Только один пользователь не входит

Проверить права и доступность его профиля, свободное место, пользовательскую автозагрузку, сценарии, политики и журнал Userenv. Создать тестовую локальную учётную запись через работающий административный вход.

Если новый пользователь устойчив, переносить документы и необходимые данные приложений после резервной копии. Не переносить старый NTUSER.DAT поверх нового как универсальный ремонт. Исходный профиль сохранить; не сбрасывать пароль ради этого шага.

### Есть признаки повреждения диска или файловой системы

Сначала образ/клон. Затем проверять SMART, ошибки ввода-вывода и файловую систему по фактическим признакам. `chkdsk /r` изменяет файловую систему и интенсивно читает диск; его нельзя назначать обязательным лечением любого logon-loop. Исправная файловая система также не доказывает исправность всех системных DLL.

### Много повреждённых системных компонентов

После копии рассмотреть восстановление из известной рабочей резервной копии или подходящей точки восстановления до сбоя. При работающем входе `sfc /scannow` — возможный этап восстановления защищённых файлов с корректным установочным источником. Он не является полной проверкой всех программ, всех настроек реестра и состояния активации.

Если требуется восстановительная установка XP, использовать соответствующий язык, редакцию, архитектуру и Service Pack, а также нужные драйверы контроллера диска. Различать:

- `R` на первом экране установочного CD — Recovery Console;
- восстановление найденной установки после начала обычной процедуры установки — отдельная возможность.

Продолжать только если установщик распознал нужную существующую Windows и явно предлагает её восстановление. Если такой возможности нет, не выбирать форматирование или новую установку поверх данных наугад. Даже восстановление требует резервной копии и может затронуть обновления и лицензирование.

## 11. Что не включать в ремонт без отдельных доказательств

| Совет из материалов | Почему исключён |
| --- | --- |
| FIXMBR, FIXBOOT, замена NTLDR при одном лишь цикле входа-выхода | Загрузчик уже довёл систему до пользовательского входа; это другая область диагностики |
| Удалить dpcdll.dll | Штатный компонент XP; требуется проверка версии/целостности, а не удаление |
| Подменить wpa.dbl, wpabaln.exe или изменить OOBETimer | Меняет лицензирование, не устанавливая причину сбоя |
| Копировать termsvcs.dll и несколько драйверов наугад | Ошибка в имени основной DLL и отсутствие доказательства конкретной зависимости |
| Очистить весь Winlogon\Notify или IFEO | Может отключить исправные компоненты; нужна точечная обратимая правка |
| Отключить Netlogon/Browser/W32Time/DHCP одновременно | Смешивает несколько переменных, может нарушить нужные функции |
| Удалить Domain/DhcpDomain | Не является корректным выходом из домена или исправлением доверительных отношений |
| Сбросить пароль, поправить SAM или объединить пути профилей | Не обосновано симптомом; может повредить доступ к данным и настройкам |
| Создать wsaupdater.exe при правильном Userinit | Не влияет на фактическую цепочку запуска |
| Заменить Userinit на Explorer или cmd | Не является штатным восстановлением и меняет процедуру инициализации |
| Сразу выполнить chkdsk /r | Нужны оценка накопителя и резервная копия |
| Считать 1074 гарантированным указателем logoff | Это неверное обещание полноты и точности журнала |
| «Починить сеть» профилактическим Winsock reset | Нужны отдельные признаки повреждения сетевого стека |
| Применять slmgr, KMS/MAK, современные каналы событий или sfc /verifyonly | Это не подходящие штатные инструкции для XP |

## 12. Как подтвердить результат

После каждого содержательного изменения выполнять отдельную проверку. Диагностическое журналирование можно включить заранее; не смешивать независимые исправления до первого сравнения.

Критерии успешного восстановления:

1. Ручной вход завершается появлением работоспособного рабочего стола.
2. Пользователь может запустить программу и работать без самопроизвольного выхода.
3. Обычный ручной выход и повторный вход проходят корректно.
4. После перезагрузки результат сохраняется.
5. Если раньше рабочий сеанс действительно достигал 20 минут, провести повторные наблюдения по 40–60 минут, включая обычную работу и простой. Это практический запас, а не абсолютное доказательство отсутствия любой ошибки.
6. Временные диагностические настройки и ненужные отключения возвращены к исходным значениям. Компонент, обоснованно признанный причиной, не возвращается в автозагрузку ради проверки на оригинале.

Остановка цикла на экране входа после `AutoAdminLogon=0` не равна ремонту. Требование активации вместо рабочего стола также не подтверждает стабильность рабочего сеанса.

Если сбой остался, следующий разбор должен опираться на время одной ручной попытки, журналы этого интервала, Userenv.log/.bak, результат безопасного режима и конфигурацию проверяемых компонентов. Для анализа не требуется публиковать пароль, DefaultPassword, ключ продукта или полный SAM.

## 13. Сравнение всех ответов и выбор лучшего

Оценка относится к качеству предоставленного текста, а не к общим возможностям моделей.

| Ответ | Что взять | Что мешает использовать целиком |
| --- | --- | --- |
| **GPT-6 Astra** | Разделение гипотез и фактов; правильные ограничения аудита, сети и ошибки 126; обратимые эксперименты | Предполагает отложенный выход и локальную консоль; требуется добавить практический офлайн-старт для секундного цикла |
| **Gemini Flash 3.8 — атрибуция по контексту** | Проверку Userinit/IFEO, подключение SOFTWARE, различение WinPE и Recovery Console | Недоказанные детали парсера, заявления о всех Safe Mode, универсальных причинах и массовые удаления |
| **Kimi K3** | Проверку автозагрузки, Notify, WMI-подписок и ServiceDll | Недоказанный WPA-таймер, событие 552 как logoff, обобщение совместимости Procmon |
| **DeepSeek V4.1 Flash** | Остановку автологон-цикла, аудит, изучение сторонних запусков | Завершение Explorer ошибочно приравнено к концу сеанса; неверные выводы о часах входа и терминальных лимитах |
| **GLM 5.3** | Поэтапные эксперименты, сохранение отката | Ошибочное отрицание штатного dpcdll.dll, необоснованные проценты и таймеры |
| **CoreWise** | Практическую часть офлайн-работы и резервное копирование | Противоречащий основному тексту Snapshot, FIXMBR/FIXBOOT, неподтверждённые «90%», смешение источников разных систем |
| **Qwen 3.8 Max** | IFEO, идею Userenv/VerboseStatus, обратимое отключение патчера | Удаление dpcdll.dll, неверный 1074, неверное имя TS DLL, привилегии logoff и массовые изменения сети/активации |
| **Claude Sonnet 5** | Осторожность в отношении прямой роли сети при локальном входе | Неподтверждённые механизмы WPA/GPO/профилей, ошибочный приоритет logon hours |
| **Grok 4.6** | Расшифровку 126 и идею Userenv | Чрезмерную уверенность в TermService и сетевых тайм-аутах, изменения лицензирования без локализации |
| **Mistral Small 4** | Общую идею проверить службы/файлы | Команды, оснастки и события из новых Windows |
| **Mercury 2** | Подозрение на стороннее вмешательство | KMS/MAK для XP, неверную ветку Start, вымышленную обычную цепочку «нет домена → logoff» |
| **Step 3.7 Flash** | Проверку прав профилей | Выдуманные сетевые таймеры, неверный параметр Userenv, смешение Notify с папкой |
| **MiniMax M3** | Идею наблюдать загрузку модулей | «Износ патча», влияние прогрева кэша, лицензионные каскады и ошибочные технические детали |

**Больше всего понравился ответ GPT-6 Astra.** Он лучше остальных выдерживает границу между доказанным фактом, технической возможностью и предположением. Ни один новый ответ не даёт оснований заменить его целиком.

Для окончательного практического варианта полезно объединить его диагностическую логику с остановкой автологона из DeepSeek и офлайн-проверкой Userinit/IFEO из нового отчёта. Из CoreWise оставить основную практическую часть после исправлений; из Qwen — журналирование и точечную проверку стороннего запуска. Причина на конкретном компьютере пока не установлена: следующий результат должен дать контролируемый тест, а не ещё одна уверенная теория о таймере.
