Stopping the windows time service

Killing a Windows Service that Hangs on Stopping or Not Responding

How to manually forcefully stop a hung Windows service process that hangs at “Stopping” or “Not responding”? Most Windows administrators have faced a problem, when they try to stop (restart) a service, but it gets stuck with the Stopping status. You won’t be able to stop this service from the Service management console (services.msc), since all control buttons for this service become inactive. The easiest way is to restart Windows, but it is not always acceptable. Let’s consider an alternative way, which allows to forcefully kill a stuck Windows service or process without system reboot.

If within 30 seconds after trying to stop the service, it doesn’t stop, Windows displays this message:

If you try to stop such a service from the command prompt: net stop wuauserv , a message appears:

The service is starting or stopping. Please try again letter.

How to Terminate a Hung Windows Service Process Using TaskKill?

The easiest way to stop a stuck service is to use taskkill. First of all, you need to find the PID (process identifier) of the service. As an example, let’s take Windows Update service, its system name is wuauserv (you can check the name in the service properties in the services.msc console).

Run this command in the elevated command prompt (it is important, or access denied error will appear):
sc queryex wuauserv
In our case the PID of the wuauserv service is 816.
To force stop a hung process with the PID 816, run the command:

taskkill /PID 816 /F

You can stop a hung service more elegantly without checking the service PID manually. The taskkill utility has the /FI option, which allows you to use a filter to select the necessary services or processes. You can shutdown a specific service with the command:

taskkill /F /FI «SERVICES eq wuauserv»

Or you can skip the service name at all and killing all services in a hung state with the command:

taskkill /F /FI «status eq not responding»

After this, the service that hangs in the Stopping status should stop.

PowerShell: Stop Windows Service with Stopping Status

You can also use PowerShell to force the service to stop. Using the following command you can get a list of services in the Stopping state:

Get-WmiObject -Class win32_service | Where-Object

The Stop-Process cmdlet allows to terminate the processes of all found services. Let’s combine both operations into a loop and get a script that automatically terminates all the processes of the stuck services:

$Services = Get-WmiObject -Class win32_service -Filter «state = ‘stop pending'»
if ($Services) <
foreach ($service in $Services) <
try <
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
>
catch <
Write-Warning -Message » Error. Error details: $_.Exception.Message»
>
>
>
else <
Write-Output «No services with ‘Stopping’.status»
>

Identify a Hang Process Using Resmon

You can detect the process that caused the service freeze using the resmon (Resource Monitor).

  1. In the Resource Monitor window, go to the CPU tab and locate the hung service process;
  2. Select the item Analyze Wait Chain from the context menu;
  3. In the new window, you will most likely see that your process is waiting for another process. End the process. If you are waiting for the svchost.exe or another system process, you don’t need to terminate it. Try to analyze the wait chain for this process. Find the PID of the process that your svchost.exe is waiting for and kill it.

Process Explorer: Killing a Hung Process Running in SYSTEM Context

Even the local administrator cannot terminate some processes that run in the SYSTEM context. The fact is that the admin account simply haven’t permissions on some processes or services. To stop such a process (services), you need to grant permissions to the service (process) to the local Administrators group, and then terminate them. To do this, we will need two small tools: psexec.exe and ProcessExplorer (available on the Microsoft website).

Читайте также:  Symbols in linux commands

  1. To run ProcessExplorer with the system privileges (runas SYSTEM), run the utility in this way: PSExec -s -i ProcExp.exe
  2. In the Process Explorer process list, find the stuck service process and open its properties;
  3. Go to the Services tab, find your service and click the Permissions button;
  4. Grant the Full Control right in the service permissions for the Administrators group. Save the changes;
  5. Now try to stop the service process.

Команда W32TM – управление службой времени в Windows

Утилита командной строки w32tm.exe предназначена для удаления или установки службы времени Windows W32Time и управления ею на локальном или удаленном компьютере. Служба времени Windows ( W32Time ) предназначена для синхронизации даты и времени на компьютерах в локальной или глобальной сети. Если служба времени не установлена или отключена, синхронизация времени невозможна.

Служба W32Time обеспечивает функционирование как клиентской, так и серверной части программного обеспечения системы и один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol). Протокол NTP использует порт 123/UDP, что нужно учитывать при настройке брандмауэра системы.

Алгоритм функционирования службы времени немного отличается в зависимости от того, является ли компьютер членом домена, или нет. Компьютеры, не входящие в домен используют синхронизацию часов с внешним источником, а входящие – с внутренним NTP-сервером, которым является контроллер домена с ролью PDC-эмулятора (эмулятора первичного контроллера домена). При этом, сам сервер NTP синхронизируется с внешним источником времени. Схема с контроллером домена реализуется при развертывании домена Active Directory и не требует какого-либо ручного вмешательства, более того, такое вмешательство чревато непредвиденными проблемами с функционированием всей инфраструктуры. Для компьютеров же, не входящих в домен, некоторые изменения настроек очень даже не помешают. В частности, во всех актуальных версиях Windows (Windows 7 и старше), предусмотрено выполнение планировщиком заданий стандартной задачи синхронизации времени с внешним источником SynchronizeTime , которая настроена далеко не самым оптимальным образом. Кроме того, некоторые параметры самой службы времени, установленные по умолчанию, не обеспечивают надежную автоматическую синхронизацию часов системы с внешним сервером в Интернет.

Параметры командной строки для установки (удаления) службы времени:

w32tm [/? | /register | /unregister ]

? — вывод справочной информации по использованию команды.

register — установка службы времени Windows и добавление ее стандартной конфигурации в реестр.

unregister — удаление службы времени Windows и всех параметров конфигурации из реестра.

Параметры службы времени хранятся в ключе реестра

Соответственно, параметры службы времени можно менять не только с помощью команды w32tm , но и правкой реестра. В этом случае, применение измененных параметров обеспечивается командой обновления конфигурации
w32tm /config /update
или перезапуском службы W32Time.

Параметры командной строки для мониторинга службы времени:

w32tm /monitor [/domain: ] [/computers: [, [, . ]]] [/threads: ] [/ipprotocol: ] [/nowarn]

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

computers — наблюдение за перечисленными в списке компьютерами. Имена компьютеров разделяются запятыми, без пробелов. Если имя имеет префикс ‘*’, оно считается именем эмулятора первичного контроллера домена в Active Directory (AD PDC). Этот параметр может использоваться несколько раз.

threads — количество одновременно наблюдаемых компьютеров. Стандартное значение по умолчанию — 3. Допустимый диапазон — от 1 до 50.

ipprotocol — версия IP-протокола (4 или 6), которая будет использоваться для наблюдения. По умолчанию будет использоваться протокол IP любой доступной версии.

nowarn — не отображать сообщения с предупреждениями.

Параметры командной строки для временных преобразований:

w32tm /ntte время_NT

— Преобразует системное время NT в интервалах (10^-7) с начиная с 00 часов 1 января 1601 г. в понятный формат.

w32tm /ntpte время NTP — Преобразует время NTP в интервалах (2^-32) с начиная с 00 часов 1 января 1900 г. в понятный формат.

Параметры для выполнения принудительной синхронизации даты и времени с внешним источником:

w32tm /resync [/computer: ] [/nowait] [/rediscover] [/soft]

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

computer:компьютер — компьютер, который должен выполнить повторную синхронизацию. Если параметр не указан, выполняется повторная синхронизация локального компьютера.

nowait — не ожидать завершения повторной синхронизации, выполнять возврат немедленно. В противном случае ожидать завершения повторной синхронизации перед возвратом.

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

soft — повторно синхронизировать, используя существующую статистику ошибок. Данный параметр в современных ОС не используется и предоставлен для обеспечения совместимости.

В справочной информации отсутствует описание параметра /force , который предназначен для выполнения синхронизации времени даже если отклонение показаний аппаратных часов и источника превышает установленное отклонение ( по умолчанию – 15 часов).

w32tm /stripchart /computer:компьютер [/period:обновление] [/dataonly] [/samples:число] [/packetinfo] [/ipprotocol: ]

Выводит диаграмму различий между этим и другим компьютером. computer:компьютер — компьютер, с которым выполняется сравнение.

period:обновление — интервал между измерениями (в секундах). Значение по умолчанию — 2 с.

dataonly — отображать только данные, без диаграмм.

samples:число — собрать число показаний, затем остановиться. Если не указано, сбор данных продолжается, пока не будут нажаты клавиши CTRL+C или CTRL+Break.

packetinfo — напечатать ответное сообщение NTP-пакета. ipprotocol — задать версию протокола IP, который нужно использовать. По умолчанию применяется любой доступный протокол.

w32tm /config [/computer:компьютер] [/update] [/manualpeerlist:узлы] /syncfromflags:источник] [/LocalClockDispersion:секунды] [/reliable:(YES|NO)] [/largephaseoffset:миллисекунды]

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

update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.

manualpeerlist:узлы — задает вручную список DNS-имен и (или) IP-адресов, разделенных пробелами. При указании нескольких узлов этот параметр должен быть заключен в кавычки.

syncfromflags:источник — определяет, с какими источниками должен синхронизироваться NTP-клиент. источник должен быть списком из следующих ключевых слов, разделенных запятыми (без учета регистра):
&nbsp MANUAL — синхронизация с узлами из заданного вручную списка.
&nbsp DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии.
&nbsp NO — без синхронизации.
&nbsp ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена.

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

reliable:(YES|NO) — определяет, является ли этот компьютер надежным источником времени. Этот параметр имеет значение только для контроллеров домена.

&nbsp YES — этот компьютер является надежной службой времени.
&nbsp NO — этот компьютер не является надежной службой времени.

largephaseoffset:миллисекунды — устанавливает разницу между локальным и сетевым временем, которую служба w32time будет считать максимальной.

w32tm /tz — Отображает текущие параметры часового пояса.

w32tm /dumpreg [/subkey:раздел] [/computer:компьютер] — Отображает значения, связанные с данным разделом реестра.

Раздел по умолчанию: HKLM\System\CurrentControlSet\Services\W32Time (корневой раздел службы времени).

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

computer:компьютер — запрашивает параметры реестра для компьютера компьютер.

w32tm /query [/computer:компьютер] [/verbose] — Отображает сведения о службе времени Windows на компьютере компьютер .

Если параметр не указан, по умолчанию используется локальный компьютер.

source — отобразить источник времени.

configuration — отобразить конфигурацию во время выполнения и происхождение параметра. В режиме подробного протоколирования отобразить также незаданные или неиспользованные параметры.

peers — отобразить список узлов и их состояние.

status — отобразить состояние службы времени Windows.

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

w32tm /debug > — Включает или отключает частный журнал службы времени Windows на локальном компьютере.

disable — отключить частный журнал.

enable — включить частный журнал.

file:имя — указать абсолютное имя файла.

size:байт — указать максимальный размер для циклического файла журнала.

entries:значение — список флагов, заданных номером и разделенных запятыми, указывающих тип сведений, которые должны заноситься в журнал. Допустимые номера: 0–300. Кроме одиночных номеров, допустимы диапазоны номеров, например 0–100,103,106. Значение 0–300 используется для занесения в журнал всех сведений.

truncate — усечь файл, если он существует.

Примеры использования команды w32tm

Как правило, служба времени Windows устанавливается с типом запуска Вручную и запускается по необходимости. Если служба времени остановлена, то управление ею с помощью команды w32tm невозможно. Для запуска, останова или проверки состояния службы можно использовать команду sc

sc query w32time — отобразить состояние службы времени Windows

sc \\192.168.0.8 query w32time — отобразить состояние службы времени на компьютере с адресом 192.168.0.8

sc start w32time — запустить службу времени Windows.

sc \\192.168.0.8 start w32time — запустить службу времени Windows на компьютере с адресом 192.168.0.8 .

sc stop w32time — остановить службу времени Windows.

Кроме утилиты sc.exe можно использовать оснастку Службы (services.msc) панели управления или классические команды net stop и net start

net stop w32time
net start w32time

Для управления службой времени Windows требуются права администратора по отношению к локальной или удаленной системе.

w32tm /? — отобразить подсказку по использованию.

w32tm /query /configuration — отобразить конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:\\WIN10 — отобразить конфигурацию службы времени на компьютере с именем WIN10

Пример отображаемой информации:

EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 10 (Локально)
MaxPollInterval: 15 (Локально)
MaxNegPhaseCorrection: 54000 (Локально)
MaxPosPhaseCorrection: 54000 (Локально)
MaxAllowedPhaseOffset: 1 (Локально)
FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 1 (Локально
) UpdateInterval: 360000 (Локально)
FileLogName: C:\User1\w32tmlog.log (Локально)
FileLogEntries: 0-300 (Локально)
FileLogSize: 100000 (Локально)

NtpClient (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 604800 (Локально
) Type: NTP (Локально)
NtpServer: time.windows.com,0x9 (Локально)
VMICTimeProvider (Локально)
DllName: C:\WINDOWS\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
NtpServer (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 0 (Локально)
InputProvider: 0 (Локально)

В секции Настройка приведены текущие параметры службы времени Windows, в секции TimeProviders — настройки программного обеспечения как клиентской, так и серверной части.

Наиболее важные параметры службы времени:

Для компьютера, не входящего в домен, используется тип синхронизации NTP и NTPServer с именем time.windows.com . При необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять 16-ричное число, или флаг (например — 0x1) который определяет режим синхронизации с сервером времени.

Возможные значения режима:

0x1 – SpecialInterval, использование задаваемого интервала опроса;
0x2 – режим UseAsFallbackOnly – синхронизация только при необходимости;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

Возможно использование комбинаций режимов:

NtpServer: time.windows.com,0x9 — клиентский запрос (0x8) с использованием заданного интервала (0x1) для синхронизации часов с сервером time.windows.com

SpecialPollInterval — значение в секундах интервала обновления времени. По умолчанию – 604800 секунд, что соответствует 7 суткам. Имеет смысл изменить этот интервал, например, на 1 час (3600) или хотя бы на 1 сутки (86400).

Очень важное значение имеют параметры MaxNegPhaseCorrection и MaxPosPhaseCorrection задающие максимальное отрицательное и положительное отклонение показаний часов, при котором может выполняться синхронизация. Значение по умолчанию — 54000 (в секундах), т.е. 15часов, что приводит к тому, что синхронизация времени не выполняется при расхождении показаний часов на величину, превышающую 15 часов. При попытке ресинхронизации времени командой w32tm /resynс показания часов не изменятся и будет выведено вообщение:

Синхронизация не выполнена, поскольку запрошенное изменение слишком велико.

Поэтому, для надежной синхронизации часов компьютера с сервером времени в Интернет, независимо от их текущих показаний, желательно увеличить абсолютное значение параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection , или вообще задать им максимальное значение для типа DWORD – 0xffffffff или 4294967295.

После изменения параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection в реестре системы, синхронизация времени будет выполняться независимо от текущих показаний часов компьютера.

w32tm /monitor /computers:ru.pool.ntp.org — отобразить разницу во времени данного компьютера и сервера времени ru.pool.ntp.org .

w32tm /monitor /computers:ru.pool.ntp.org,time.windows.com,time.nist.gov — отобразить разницу во времени данного компьютера и нескольких серверов времени.

w32tm /resync – синхронизировать часы локального компьютера с используемым им сервером времени.

w32tm /resync /force – синхронизировать часы локального компьютера с используемым им сервером времени, игнорируя максимальное и минимальное отклонение показаний аппаратных часов и источника.

w32tm /stripchart /computer:pool.ntp.org /samples:3 /dataonly — сравнить показания часов локального компьютера с показаниями сервера времени pool.ntp.org . Будет выполнено 3 запроса и результаты будут представлены в текстовом виде.

Пример отображаемой информации:

Отслеживание pool.ntp.org [77.232.189.6:123].

Сбор образцов 3.
Текущее время — 14.02.2017 17:04:02.
17:04:02 d:+00.0154105s o:+00.0201873s
17:04:04 d:+00.0154035s o:+00.0257523s
17:04:06 d:+00.0154118s o:+00.0147256s

d: — задержка ответа, интервал времени между отправкой запроса и получением ответа от сервера NTP.

o: — смещение локальных часов относительно показаний сервера NTP (если положительное значение – часы отстают, отрицательное – спешат).

w32tm /stripchart /computer:pool.ntp.org — то же, что и в предыдущем примере, но проверка выполняется непрерывно, до тех пор пока не будет нажата комбинация клавиш CTRL+C или CTRL+Break

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update — изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org и применить сделанные изменения.

w32tm /query /configuration — отобразить текущую конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:win10 — отобразить текущую конфигурацию службы времени Windows на компьютере WIN10 .

w32tm /query /source — отобразить сведения об источнике времени на локальном компьютере.

w32tm /query /source /computer:win10 — отобразить сведения об источнике времени на компьютере win10 .

w32tm /unregister — удалить службу времени Windows из системы. Все параметры службы в реестре удаляются. Перед выполнением команды, служба времени должна быть остановлена, в противном случае команда завершится сообщением об ошибке доступа.

w32tm /register – установить службу времени Windows на данном компьютере. При этом все параметры службы в реестре создаются заново. Для изменения параметров заданных по умолчанию, можно использовать импорт из заранее подготовленного reg-файла, например:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config]
«MaxNegPhaseCorrection»=dword:ffffffff
«MaxPosPhaseCorrection»=dword:ffffffff

Читайте также:  Linux increase root partition
Оцените статью