Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах Работа со службами Windows Vista, Часть 1


Уважаемые подписчики, на нашем сайте (http://www.onestyle.com.ua) организован опрос, тема которого: 'Содержимое какой из книг вы бы хотели прочитать в будущих статьях на нашем сайте?'. Голосуйте на сайте за одну из книг, содержимое которой вы хотели бы видеть в номерах данной рассылки.
Другие наши рассылки:
  • Новости IT-мира: Ежедневно ссылки на новости и статьи сайтов ixbt.com, thevista.ru, xakep.ru, securitylab.ru, oszone.ru, inattack.ru, ht.ua, overclockers.ru, центр загрузки Microsoft, softportal.com, realcoding.net, 3dcenter.ru, ladoshki.com, smti.ru, seonews.ru, ibm.com и др.

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

Наверное, для вас не будет большой новостью то, что большинство возможностей операционной системы Windows Vista основаны на работе каких-либо служб. Самих же служб в операционной системе Windows Vista насчитывается более 100, поэтому опытный пользователь просто обязан уметь работать с ними, а также разбираться в некоторых особенностях их работы.

Будем считать, что основные сведения о службах вы уже знаете. Например, вы знаете, что самым простым способом управления службами локального и удаленного компьютера является использование оснастки Службы (консоль services.msc). Тогда, естественно, вы знаете и то, что с помощью данной оснастки можно выполнять следующие действия: останавливать, запускать и приостанавливать работу службы; настраивать либо полностью отключать службы; определять учетную запись, от имени которой будет работать служба; настраивать действия компьютера при сбое в работе службы; разрешать запуск службы в определенном профиле оборудования; просматривать зависимости работы службы.

Профили оборудования

Кстати, о настройке запуска службы в определенном профиле оборудования. По умолчанию существует только один профиль оборудования — Undocked Profile. Это можно увидеть на рисунке 1 (не обращайте внимания на профиль Test, его я добавил вручную для проверки). И, как ни странно, операционная система Windows Vista не содержит возможностей добавления новых профилей оборудования.

Если в предыдущих версиях Windows такая возможность находилась на вкладке Оборудование диалога Свойства: Система, то в Windows Vista соответствующее место на этой вкладке пустует. Сначала я подумал, что разработчики Windows просто забыли добавить эту возможность, но исследования показали, что профили оборудования в Windows Vista просто не используются.

Хотя, возможно, все дело в том, что я сделал что-то не так. В общем, если вы хотите поэкспериментировать с профилями оборудования, вы должны знать, что:

Сведения о существующих профилях оборудования хранятся в виде подразделов формата 0000 (например, подразделы 0000, 0001, 0002) ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IDConfigDB\Hardware Profiles. Чтобы создать новый профиль оборудования, достаточно создать новый подраздел, используя параметры, подобные параметрам подраздела 0001 данной ветви реестра (этот подраздел как раз и определяет профиль оборудования Undocked Profile).

Также для создания профиля оборудования вы должны в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IDConfigDB\Hardware Profiles создать параметр REG_DWORD типа, имеющий такое же название, что и созданный вами профиль оборудования. Значение данного параметра должно быть равно 1.

Сведения о настройках профилей оборудования хранятся в виде подразделов формата 0000 (например, подразделы 0000, 0001, 0002) ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles. При создании нового профиля оборудования вы должны обязательно создать соответствующий новому профилю раздел данной ветви реестра (иначе при отображении диалога Свойства служб будет отображаться ошибка).

Несмотря на то, что используемый профиль оборудования определяется параметром REG_DWORD типа CurrentConfig, расположенным в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IDConfigDB, в Windows Vista вы не сможете воспользоваться этим параметром. Все дело в том, что после перезагрузки компьютера значение данного параметра всегда будет устанавливаться в 1. Поэтому чтобы сменить профиль оборудования, нужно поступить по-другому. Например, можно переименовать разделы из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles. К примеру, чтобы загрузить компьютер на основе созданного вами профиля с номером раздела 0002, достаточно профилю 0001 присвоить имя 0002, а созданному вами профилю 0002 присвоить имя стандартного профиля 0001. То есть, поменять номера профилей местами.

По адресу www.onestyle.com.ua/project.php?u=43 можно найти reg-файл, с помощью которого я добавлял новый профиль оборудования. Возможно, вы захотите поэкспериментировать с ним.

Рисунок 1

Если службу отключить не удается

Некоторые службы запрещено отключать при помощи оснастки Службы (services.msc). Если же вы хотите обойти это ограничение, следует воспользоваться программой sc.exe. Однако перед этим вы должны понять, что большинство служб, отключение которых запрещено при помощи оснастки Службы, действительно являются необходимыми для работы операционной системы Windows Vista. Поэтому их отключение может непредсказуемым образом сказаться на функциональности данной операционной системы.

Ниже представлен перечень служб, отключение которых при помощи оснастки Службы запрещено. Чтобы отключить одну из этих служб, достаточно воспользоваться командой вида sc config [раздел реестра] start= disabled. Если же и с помощью данной команды нельзя отключить работу службы, тогда сначала следует изменить права доступа к ветви службы (ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[раздел реестра]), после чего уже применять данную команду.

Ниже представлены службы, отключение которых запрещено.

  • Plug-and-Play (раздел реестра PlugPlay). Позволяет компьютеру распознавать изменения в установленном оборудовании и подстраиваться под них, либо не требуя вмешательства пользователя, либо сводя его к минимуму. Остановка или отключение этой службы может привести к нестабильной работе системы.
  • Клиент групповой политики (раздел реестра gpsvc). Данная служба ответственна за применение параметров, определенных администраторами для компьютеров и пользователей через компонент групповой политики. Если эта служба остановлена или отключена, параметры не будут применены. Так же не будет возможно управление приложениями и компонентами через групповую политику. Если эта служба остановлена или отключена, любые компоненты или приложения, зависящие от компонента групповой политики, могут не функционировать.
  • Модуль запуска процессов DCOM-сервера (раздел реестра DcomLaunch). Обеспечивает запуск для служб DCOM.
  • Планировщик заданий (раздел реестра Schedule). Позволяет настраивать расписание автоматического выполнения задач на этом компьютере. Если эта служба остановлена, эти задачи не могут быть запущены в установленное расписанием время. Если эта служба отключена, любые службы, которые явно зависят от нее, не могут быть запущены.
  • Удаленный вызов процедур (RPC) (раздел реестра RpcSs). Обеспечивает сопоставление конечных точек и служит диспетчером управления службы COM. Если эта служба остановлена или отключена, программы, использующие службу COM или службы удаленного вызова процедур (RPC), не смогут работать.

Из всех представленных выше служб, наверное, наиболее востребованной будет возможность отключения службы Планировщик заданий. Отключение данной службы приводит к повышению скорости работы операционной системы. Однако следует понимать, что отключение данной службы приведет к отключению некоторых возможностей Windows Vista (например, возможности создания групп сборщиков данных, автоматической архивации и дефрагментации файлов и т.д.), однако не для всех пользователей эти возможности являются актуальными.

Использование программы sc.exe

Оснастка Службы является прекрасным средством для работы со службами, однако она не поддерживает некоторые возможности настройки служб, которые могут предоставить вам стандартные программы командной строки операционной системы Windows Vista. В частности, наиболее интересные и полные возможности по работе со службами поддерживает программа sc.exe.

В данной статье мы не будем рассматривать возможности программы sc.exe, которые доступны в оснастке Службы. Вместо этого мы рассмотрим только уникальные возможности данной программы — все они представлены ниже.

  • sc config [имя службы] type= тип. Позволяет изменить тип службы или драйвера. Возможны следующие типы: own (программа, запускающая отдельный процесс), share (программа, запускаемая в общем процессе), interact (данной службе разрешено взаимодействовать с рабочим столом пользователя), kernel (устройство уровня ядра), filesys (драйвер файловой системы уровня ядра), rec (распознавание файловой системы), adapt (аргумент для адаптера).
  • sc config [имя службы] binPath= путь. Позволяет изменить путь к исполняемому файлу службы.
  • sc config [имя службы] group= группа. Позволяет изменить группу, в которую входит данная служба. От группы зависит очередность, в которой будет запускаться служба.
  • sc config [имя службы] depend= службы. Позволяет указать список служб (разделенных косой чертой), которые должны быть запущены перед тем, как будет запущена данная служба.
  • sc interrogate [имя службы] номер. Позволяет отправить службе запрос с определенным идентификатором. Стандартными запросами к службам являются запросы на запуск, остановку и приостановку. Если же служба поддерживает дополнительные запросы, тогда их можно вызвать при помощи данной команды.
  • sc sidtype [имя службы] [тип службы]. Позволяет изменить тип службы. Возможны следующие типы: none, unrestricted, restricted (добавить SID данной службы к списку ограниченных SID дескриптора процессов).
  • sc qsidtype [имя службы]. Отобразить тип SID, используемый службой.
  • sc showsid [имя службы]. Отобразить SID службы.
  • sc privs [имя службы] привилегии. Позволяет изменить привилегии, используемые определенной службой (привилегии разделяются косой чертой). Возможность использования привилегий службами была впервые реализована именно в операционной системе Windows Vista. С ее помощью можно ограничить общие права доступа службы, предоставив ей только отдельные привилегии, которые действительно необходимы данной службе.
  • sc control [имя службы] код. Позволяет послать службе управляющий код. Примеры кодов: paramchange, netbindadd, netbindremove, netbindenable, netbinddisable.
  • sc delete [имя службы]. Позволяет удалить данную службу.
  • sc create [имя службы] параметры. Позволяет создать службу. При создании службы можно использовать следующие параметры: type= own|share|interact|kernel|filesys|rec (по умолчанию = own); start= boot|system|auto|demand|disabled|delayed-auto (по умолчанию demand); error= normal|severe|critical|ignore (по умолчанию normal); binPath= [путь_к_двоичному_файлу]; group= [группа_запуска]; tag= yes|no; depend= [зависимости, разделенные косой чертой]; obj= [имя_учетной_записи|имя_объекта] (по умолчанию LocalSystem); DisplayName= [выводимое имя]; password= пароль.
  • sc sdshow [имя службы]. Отобразить дескриптор безопасности службы.
  • sc sdset [имя службы] дескриптор. Установить дескриптор безопасности службы.
  • sc boot ok | bad. Позволяет определить, будет ли текущий запуск операционной системы сохранен в качестве последней удачной конфигурации.
  • sc lock. Позволяет заблокировать базу данных служб, что приведет к невозможности изменения состояния службы (будет запрещено запускать, останавливать и приостанавливать работу служб).
  • sc QueryLock. Определяет, заблокирована ли база данных служб, а также того, как ее заблокировал.
Автоматический отложенный запуск служб

Операционная система Windows Vista помимо стандартных способов запуска служб (автоматически, вручную, отключена) поддерживает еще один способ запуска: автоматически (отложенный запуск). При использовании данного способа запуска операционная система запускает службу не сразу после входа пользователя в систему, а немножко позже.

То есть, благодаря данному способу запуска служб при входе пользователя в систему не возникает затормаживаний. По этой причине следует пытаться использовать данный способ запуска служб (тех служб, от работы которых не зависит работа других служб) вместо стандартного автоматического способа запуска.

Отключение служб при помощи программы msconfig.exe

Помимо оснастки Службы для отключения служб можно использовать и возможности вкладки Службы диалога Конфигурация системы (программа msconfig.exe). Особенность этого способа заключается во флажке Не отображать службы Microsoft, при выборе которого перед вами предстанут только те службы, которые не были созданы разработчиками Microsoft (рис. 2).

То есть, если вы хотите отключить службу, установленную какой-либо сторонней программой, использование программы msconfig.exe является более предпочтительным способом, чем использование других программ работы со службами.

Рисунок 2

Продолжение следует

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=100

В избранное