В некоторых случаях необходимо настроить задержку запуска определенной службы Windows для того, чтобы дождаться окончания запуска другой службы. В этой небольшой статье рассмотрим процесс настройки зависимостей или даже целых цепочек зависимостей запуска служб при загрузке Windows.
Просмотреть зависимости служб Windows можно в консоли управления службам Services.msc. Выберите необходимую службу, откройте ее свойства и перейдите на вкладку Dependencies (Зависимости). Как вы видите, окно разделено на две секции: в верхней отображаются службы, от которых зависит данная службы (служба будет запущена после запуска всех служб из данного списка), а в нижней службы, зависимые от этой службы. Управлять зависимостями служб из этого окна нельзя. Вместо этого придется воспользоваться консольной утилитой sc.exe (Windows Service Control) или вручную редактировать реестр.
Для настройки зависимостей из командной строки используется команда sc.exe. Имейте в виду, что при установке зависимостей с помощью этой команды, текущие зависимости будут перезатёрты.
К примеру, выведем список зависимостей службы с именем MyService1:
sc qc "MyService1"
С помощью sc config можно добавить зависимости для службы. К примеру, мы хотим, чтобы служба MyService1 была зависима от службы MyService2, т.е. служба будет запущена только после успешного запуска службы MyService2. Для этого выполните команду:
sc config "MyService1" depend= "MyService2"
Если нужно указать несколько зависимостей, имена служб нужно перечислить через символ обратного слеша. Например, так:
sc config "MyService1" depend= "MyService2"/"MyService3"
Чтобы удалит все зависимости у определенной службы, выполните:
sc config "MyService1" depend= /
Для настройки зависимостей служб можно использовать реестр. Откройте редактор реестра и перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Внутри этого раздела для каждой службы имеется отдельная ветка. Выберите раздел с именем службы, которую вы хотите настроить.
Чтобы задать зависимости для выбранной службы, создайте новый параметр реестра типа REG_SZ с именем DependOnService. В значении параметра укажите имена служб, от которых должен зависеть данный сервис (по одной службе в каждой строке).