Короткий ответ
Restart-Service без кода SCM — лотерея. Снимите состояние, тип запуска, зависимости, учётку Log On, Win32ExitCode и события 7000/7001/7023/7034. Частые якоря: зависимость Stopped (1068), таймаут 1053, просроченный пароль gMSA/доменной учётки, диск 0 байт, патч.
Не ставьте службу в Automatic Delayed «чтобы скрыть гонку» без понимания зависимости.
Симптомы и как отличить
- После загрузки сервис в Stopped / StartPending.
- В Services.msc: «Error 1068: The dependency service or group failed to start».
- 1053: не ответила вовремя.
- Зависимые роли (IIS, SQL, AD DS) не работают, хотя «сервер пингуется».
| Картина | Другая статья |
|---|---|
| C: полный | диск |
| Сломалось сразу после KB | Windows Update |
| TermService / RDP | RDP |
| NTDS на DC | DC |
Возможные причины
- Зависимость (RPCSS, HTTP, W32Time, NTDS) не Running.
- Log on as: пароль сменён, учётка lock, нет «Log on as a service».
- Исполняемый файл отсутствует, путь в кавычках сломан, антивирус карантин.
- Таймаут медленного диска/сети (1053).
- Trigger Start: служба не должна жить всегда — вы стартуете вручную не тот режим.
- Повреждённые параметры в SCM после ручного
sc config.
Диагностика
Подставьте имя службы (пример TermService или ваша прикладная):
Get-Service TermService | Format-List *
Get-CimInstance Win32_Service -Filter "Name='TermService'" |
Format-List Name, State, StartMode, StartName, PathName, ExitCode
sc.exe qc TermService
sc.exe qfailure TermService
sc.exe enumdepend TermServiceЖурнал SCM:
Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7000,7001,7022,7023,7024,7034,7041 } -MaxEvents 30 |
Format-Table TimeCreated, Id, Message -Wrap7001 — зависимость; 7041 — не удалось войти как пользователь службы.
Проверка учётки:
Get-CimInstance Win32_Service -Filter "Name='TermService'" | Select-Object StartName
Get-ADUser 'svc-app' -ErrorAction SilentlyContinue -Properties LockedOut, PasswordExpired, EnabledДиск и файл:
Get-Volume -DriveLetter C | Format-List SizeRemaining
Get-AuthenticodeSignature 'C:\Windows\System32\svchost.exe'Для своей службы проверьте PathName из WMI — файл на месте, кавычки вокруг пути с пробелами.
Решение
Сценарий A. 1068 — зависимость
Поднимите цепочку снизу: сначала зависимость, потом целевая.
Get-Service TermService -DependentServices
Start-Service TermServiceНе ставьте зависимости в Disabled, чтобы «ускорить загрузку».
Сценарий B. Пароль / gMSA
Обновите пароль в SCM или назначьте gMSA. Права «Log on as a service» через GPO, не локальную галку вразброс.
Сценарий C. 1053 таймаут
Ищите, почему процесс не сигналит SCM: блокировка DLL, сеть к лицензионному серверу, диск. Увеличение ServicesPipeTimeout в реестре — последнее, документированное изменение, не первая кнопка.
Сценарий D. После обновления
См. откат KB. Не sfc /scannow как единственный шаг без журнала CBS.
Сценарий E. Disabled после GPO
GP preferential: «системные службы». Проверьте RSOP computer. Иначе GPO снова убьёт ручной Start.
Сценарий F. Разбор кода и цепочки до третьего Restart
Выпишите Win32ExitCode из Win32_Service и сопоставьте с System 7000/7023. Код 1068 без имени зависимости бесполезен — sc.exe qc показывает DEPENDENCIES. Поднимите их по одному и смотрите, какая не держится.
$svc = 'TermService'
sc.exe enumdepend $svc
sc.exe qc $svc
Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7000,7001,7023,7034 } -MaxEvents 15 |
Format-List TimeCreated, Id, MessageЕсли PathName указывает на каталог на D: и том не смонтировался — это не «служба сломалась», а порядок дисков/iSCSI. Delayed Auto Start маскирует гонку с SAN, но не лечит отсутствующий LUN.
Учётка contoso\svc-app: проверьте «Log on as a service» в RSOP и lockout. После смены пароля в AD SCM хранит старый секрет, пока его не обновят. gMSA снимает эту класс задач.
Не ставьте службу в Manual «временно»: после reboot роль молчит, тикет возвращается. Automatic или Automatic (Delayed) — осознанный выбор, зафиксированный в runbook.
Как проверить, что проблема устранена
Get-Service TermService | Format-Table Name, Status, StartType
Get-CimInstance Win32_Service -Filter "Name='TermService'" | Format-List State, ExitCode, StartNameExitCode 0, Status Running. Зависимый функционал (RDP, сайт, очередь) проверен с клиента, не только зелёная оснастка. После reboot — служба в ожидаемом состоянии без ручного Start.
Если не помогло
- StartPending бесконечно: снимите процесс, hang dump, не третий Restart.
- Служба падает через секунды: приложение, не SCM — его лог.
- Только после входа пользователя: Interactive vs Session 0, права на путь.
- AD DS не стартует — диск/NTDS, не
sc start NTDSв цикле.
Сверьте StartType: Disabled из GPO снова убьёт ручной старт после gpupdate. Для прикладной службы сохраните sc.exe qc и PathName в заявку: часто после патча «пропал» каталог на D:, а SCM всё ещё указывает туда. Не меняйте тип запуска на Automatic Delayed, пока не поняли зависимость от сети или диска. Если учётка Log On — contoso\svc-app, проверьте lockout и PasswordExpired до следующего Restart.
Профилактика
- Мониторинг Stopped для Automatic-служб.
- gMSA вместо пароля в SCM.
- Зависимости не режьте GPO «неиспользуемые службы» пакетом с интернета.
- Перед патчем — список Automatic и baseline на DC.
- Сохраняйте
sc.exe qcи StartName в документации роли: после смены пароля сервиса обновляйте SCM в том же окне, что и AD. Не ставьте Delayed Start «на все подряд», только где доказана гонка с NIC или SAN.
FAQ
Почему Restart помогает на пять минут?
Процесс стартует, потом упирается в зависимость/лицензию/диск. Журнал между падениями важнее кнопки.
Automatic (Delayed Start) — это решение 1068?
Иногда маскирует гонку с сетью. Сначала исправьте зависимость и DHCP/DNS, не прячьте гонку.
Можно ли recover: restart в sc failure бесконечно?
Цикл restart без лимита маскирует утечку и бьёт по диску. Recover — после диагностики, с счётчиком.
Код 577 / подпись драйвера?
Это уже целостность образа и политики Code Integrity, не «служба». Не отключайте проверку подписи как постоянный фикс.
Нужно ли сразу sfc / DISM?
После того как журнал CBS/SCM указал на повреждённый компонент. Не вместо чтения 7001. Сначала зависимости и учётка Log On, потом уже целостность образа.