Программы управления службами

октября 12 2009 by admin in Службы

При создании службы, как правило, приходится разрабатывать и приложение, с помощью которого администраторы будут ею управлять. Такие приложения до;1жны использовать описываемые в этой главе функции. Кроме того, они должны помогать администратору и в других аспектах работы со службами, например, в их настройке и публикации в Active Directory. В идеале администрирующие приложения реализуются в виде модульных компонентов для Microsoft Management Console (MMC) или с помощью Web-консоли.
Первый этап во взаимодействии с SCM компьютера — вызов OpenSCManager.
SC_HANDLE OpenSCManager( PCTSTR pszMachineName, PCTSTR pszDatabaseName, DWORD dwDesiredAccess);
Эта функция подготавливает коммуникационный канал для связи с SCM, который находится на компьютере, определяемом параметром pszMachineName (чтобы открыть SCM на локальном компьютере, установите этот параметр в NULL). Параметр pszDatabaseName идентифицирует открываемую БД, им нужно передавать SERVICES_ACTIVE_DATABASE либо NULL. Параметр dwDesiredAccess указывает функции, что вы собираетесь делать с БД SCM. Возможные права доступа описаны ниже (табл. 4-1).
Защита SCM в Windows осуществляется так: администраторы (группа Administrators) имеют полный доступ к SCM; группы LocalSystcms и Everyone обладают правами SC_MANAGER_CONNECT,
SC_MANAGER_ENUMERATE_SERVICE и SC MANAGER_QUERY_LOCK_STATUS.
OpenSCManager возвращает описатель SC_HANDLE, который затем передается в другие функции, манипулирующие БД SCM. По окончании работы с БД SCM этот описатель нужно закрыть, передав его в функцию CloseServiceHandle.