Примечание
Если служба зависит от группы, запускающейся позже той, в которую входит служба, то выдается сообщение об ошибке запуска. Эта же ошибка выдается, если служба зависит от другой службы, которая входит в группу, запускаемую позднее.
• DisplayName – этот параметр строкового типа определяет название службы, используемое для ее отображения в оснастке services.msc.
• Description – имеет строковый тип и определяет описание службы, используемое для отображения строки ее описания в оснастке services.msc.
• ObjectName – данный параметр строкового типа определяет учетную запись пользователя, с правами которого будет запущена данная служба. Может принимать следующие значения.
– LocalSystem – служба запускается с правами локальной системы (данная учетная запись принадлежит администраторам компьютера со всеми вытекающими возможностями). Служба также запускается с правами локальной системы, если данный параметр отсутствует.
Эта учетная запись хранит свои настройки в ветви реестра HKEY_USERS\.DEFAULT. Профиль же данной учетной записи содержится в каталоге %systemdrive%\Users\Default.
– NT Authority\NetworkService – служба запускается с правами пользователя, которому разрешен доступ к сети.
Данная учетная запись хранит свои настройки в ветви реестра HKEYUSERS \ S-l-5-20. Профиль же данной учетной записи содержится в каталоге %systemroot%\ServiceProfiles\NetworkService.
– NT AUTHORITY\LocalService – служба запускается с правами локального пользователя, который может взаимодействовать с сетью только с помощью нулевых сеансов (в остальном же данная учетная запись аналогична учетной записи NetworkService).
Учетная запись хранит свои настройки в ветви системного реестра Windows HKEY_USERS\S-l-5-l9. Профиль же ее содержится в каталоге %systemroot%\ServiceProfiles\LocalService.
-.\<логин пользователя> – служба запускается с правами данного пользователя.
• ErrorControl – этот параметр типа REG_DWORD определяет поведение системы при возникновении ошибок во время запуска данной службы. Он может принимать следующие значения.
– 0 – диспетчер ввода-вывода игнорирует возникшую ошибку, и загрузка операционной системы продолжается.
– 1 – предупредить пользователя о возникшей ошибке и продолжить запуск операционной системы.
– 2 – прекратить запуск операционной системы и выполнить перезагрузку компьютера для запуска последней удачной конфигурации. Если компьютер загружается именно с использованием последней удачной конфигурации, то ошибка игнорируется.
– 3 – прекратить запуск операционной системы и выполнить перезагрузку компьютера для запуска последней удачной конфигурации. Если компьютер загружается именно с использованием последней удачной конфигурации, то отображается экран неустранимой ошибки BSOD.
Последняя удачная конфигурация загружает операционную систему на основе ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSetX, номер которой указан в параметре REG_DWORD-типа LastKnownGood, расположенном В ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\Select.
По умолчанию значение параметра LastKnownGood изменяется после каждого успешного входа пользователя в операционную систему. Однако сторонние службы могут изменить условие, при котором загрузка операционной системы считается удачной, и значение параметра LastKnownGood изменяется.
Для этого им достаточно описать новую программу верификации запуска системы с помощью ветви реестра Windows HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\BootVerificationProgram. Также им нужно будет присвоить параметру строкового типа ReportBootOk, расположенному В ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsof t\ Windows NT\CurrentVersion\Winlogon, значение 0. Это необходимо сделать, чтобы операционная система не вызывала функцию Notif yBootConf igStatus при входе пользователя в систему (так как эта функция будет вызываться из новой программы верификации). Функция вызывается перед сохранением последней удачной конфигурации.
• ImagePath – этот параметр строкового типа определяет путь к исполняемому файлу службы. Именно этот файл представляет собой службу и будет запускаться при ее загрузке.
• Start – имеет тип REG_DWORD и определяет, когда именно будет запускаться данная служба. Он может принимать следующие значения.
– 0 – запускать драйвер загрузчиком операционной системы (NTLDR) перед началом этапа инициализации ядра (во время загрузки драйвер будет находиться в памяти).
– 1 – запускать драйвер при инициализации ядра (подсистемой ввода/вывода).
– 2 – запускать службу с помощью диспетчера управления службами (services.ехе) после запуска окна приветствия winlogon.ехе.
– 3 – запускать службу вручную, когда она понадобится какой-нибудь программе.
– 4 – запрещает запуск данной службы.
• DelayedAutoStart – этот параметр REG_DWORD-типа является нововведением операционной системы Windows Vista. Если его значение равно 1, то служба будет запускаться не сразу, а через определенный промежуток времени, чтобы не загружать операционную систему (с задержкой). Как правило, данный параметр используется в том случае, когда значение параметра Start равно 2.
• ServiceSidType – имеет тип REG_DWORD и является нововведением операционной системы Windows Vista. Он определят тип SID, который был присвоен соответствующей службе. Если значение данного параметра равно 1, то служба будет использовать неограниченный SID. А если значение равно 3, то ограниченный.
• Security – данный параметр REG_BINARY-типа содержит дескриптор защиты службы, определяющий права пользователей, которые могут получить доступ к службе.
• Туре – имеет тип REG_DWORD и определяет тип службы. Возможны следующие значения этого параметра.
– 0x1 – драйвер представляет устройство уровня ядра.
– 0x2 – драйвер является драйвером файловой системы уровня ядра.
– 0x4 – драйвер является аргументом для адаптера (данное значение является устаревшим).
– 0x8 – драйвер используется для распознавания файловой системы.
– 0x10 – служба является программой, запускающей свой процесс.
– 0x20 – служба является программой, работающей в общем процессе. Работа нескольких служб в одном процессе позволяет экономить ресурсы компьютера.
– 0x100 – данное значение параметра может добавляться к остальным значениям. Присутствие этого значения говорит о том, что службе разрешено взаимодействовать с Рабочим столом пользователя (то есть она может отображать свои окна). Использование данного значения параметра разрешено только для служб, запущенных от имени системы.
По умолчанию службы, запущенные от имени системы или другой учетной записи, не могут взаимодействовать с Рабочим столом текущего пользователя. Это связано с особенностями работы операционной системы Windows: каждая учетная запись имеет свой собственный Рабочий стол и может взаимодействовать только с ним. При этом отображаться может только один Рабочий стол – текущего пользователя. Поэтому, даже если служба попытается отобразить какое-либо сообщение (за исключением диалогового сообщения, которое служба может отобразить на Рабочем столе текущего пользователя, воспользовавшись специальными параметрами), пользователь этого сообщения не увидит.
Если же разрешить службе, запущенной от имени локальной системы, взаимодействовать с Рабочим столом, то она будет отображать окна не на своем Рабочем столе, а на Рабочем столе текущего пользователя.