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

C помощью программы net.exe можно не только работать со службами операционной системы, но и решать множество других задач, однако в контексте данной главы мы рассмотрим лишь те команды этой программы, с помощью которых можно работать со службами.

* Net statistics server. Отображает сведения о работе службы СЕРВЕР. Например, данная команда предоставляет следующие сведения: количество сеансов, размер принятых и переданных данных, количество ошибок при доступе к серверу (например, неправильно введенных паролей), количество обращений к файлам и принтерам, расположенным на сервере, и т.д. * net statistics workstation. Отображает сведения о работе службы РАБОЧАЯ СТАНЦИЯ. Например, данная команда предоставляет следующие сведения: размер переданных и принятых данных, количество успешных и запрещенных операций чтения и записи, количество подключений, запущенных сеансов, зависших сеансов и т.д. * Net config server. Отображает следующие сведения о работе службы СЕРВЕР: имя сервера, максимальное число подключенных к серверу пользователей или открытых пользователями файлов, время простоя сеанса с сервером, при истечении которого сеанс будет автоматически завершаться. * Net config server /AUTODISCONNECT:«количество минут». Устанавливает новое время простоя сеанса с сервером, после истечения которого, данный сеанс будет автоматически завершен.

Данная команда изменяет значение параметра DWORD-типа autodisconnect, расположенного в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters. * Net config server /HIDDEN:«YES или NO». Устанавливает или запрещает режим скрытого сервера.

Данная команда изменяет значение параметра DWORD-типа hidden ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters. * Net config workstation. Отображает следующие сведения о работе службы РАБОЧАЯ СТАНЦИЯ: домен данного компьютера и его DNS-имя, отсчет передачи, таймаут передачи и интервал ожидания открытия COM-порта. * Net continue «имя службы». Выполняет запуск службы, которая ранее была приостановлена. * Net pause «имя службы». Приостанавливает работу данной службы. * Net start «имя службы». Запускает работу данной службы. * Net stop «имя службы». Останавливает работу данной службы.

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

Данная программа командной строки служит для выполнения основных работ по настройке служб. Особенностью этой программы является то, что все операции со службами вы можете выполнять как на локальном, так и на удаленном компьютере. Чтобы выполнить команду на удаленном компьютере, достаточно в команде после названия программы указать опцию \\«имя компьютера».

Отображение сведений о службе

* Sc enumdepend «имя службы». Отображает список служб (и сведения о них), которые не смогут работать, если будет отключена данная служба. * Sc getdisplayname «имя службы». Отображает общее имя данной службы. * Sc getkeyname «общее имя службы». Отображает имя данной службы (название ее ветви реестра). * Sc qc «имя службы» [«размер буфера для вывода в байтах»]. Данная команда отображает такие сведения о службе, как имя службы, тип службы, способ запуска службы, действия при возникновении ошибки при запуске службы, Файлы службы, ее описание и т.д. Если получаемые сведения будут иметь больший размер, чем указанный в команде буфер, тогда сведения будут обрезаться. * Sc qdescription «имя службы» [«размер буфера для вывода в байтах»]. Данная команда отображает строку описания службы. * Sc qfailure «имя службы» [«размер буфера для вывода в байтах»]. Данная команда отображает действия, которые будет выполнять система при возникновении ошибок во время запуска службы. * Sc sdshow «имя службы». Отображает дескриптор безопасности данной службы. * sc showsid «имя службы». Отображает идентификатор безопасности для соответствующей службы. Данная команда является нововведением Windows Vista. Идентификатор безопасности (SID) предназначен для идентификации данной службы среди остальных служб с целью определения ветвей реестра и папок файловой системы,к которым данная служба может получить доступ. В соответствии с концепцией безопасности по умолчанию, которую приводит в жизнь корпорация Microsoft, все меньше служб запускаются от имени локальной системы и со всеми привилегиями. Однако при этом возникает единственная проблема — многим службам нужен доступ к определенным ветвям реестра или каталогам, доступ к которым их учетной записи запрещен. В этом случае применяется SID службы с целью предоставить доступ только определенной службе, а не всем службам одной учетной записи.

sc qprivs «имя службы» «список привилегий». Отображает список привилегий, предоставляемых соответствующей службе. Данная команда является нововведением Windows Vista.

Изменение сведений о службе

Sc config «имя службы» [type=«тип службы»] [start=«тип запуска»] [error=«действие при ошибке»] [binpath=«путь к исполняемому файлу службы»] [group=«имя группы»] [depend=«список служб и групп, которые должны быть запущены (пишутся черед косую черту «/»)»] [obj=«учетная запись пользователя, от имени которого запускается данная служба»] [displayname=«отображаемое имя службы»] [password=«пароль для указанной учетной записи пользователя»] Изменяет настройки указанной службы локального или удаленного компьютера. Вы, наверное, уже поняли, что с помощью данной команды изменяются значения параметров ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\«имя службы». Давайте рассмотрим назначение основных опций данной команды.

Опция type= определяет тип службы и может принимать следующие значения.

* Own — служба является программой и выполняется в собственном процессе. Данная опция используется по умолчанию. * Share — служба является программой и использует общий процесс. * Kernel — служба является драйвером. * Filesys — служба является драйвером файловой системы и необходима для ее работы. * Rec — служба является драйвером, определяющим доступные на компьютере файловые системы. * Adapt — служба описывает работу устройства.

Опция start= определяет способ запуска службы и может принимать следующие значения.

* Boot — служба запускается загрузчиком системы при инициализации ядра. * System — служба запускается после инициализации ядра операционной системы. * Auto — служба запускается автоматически после отображения диалога приветствия (winlogon.exe). * Demand — служба вручную программами, когда она необходима программам. Данное значение используется по умолчанию. * Disabled — служба отключена.

Опция error= определяет действия при неудачной попытке запуска службы и может принимать следующие значения.

* Normal — при возникновении ошибки записать сообщение о ней в журнале, после чего вывести пользователю предупреждение о возникшей проблеме. * Severe — выполнить перезагрузку компьютера с использованием режима запуска последней удачной конфигурации. * Critical — без работы данной службы работа операционной системы невозможна, поэтому будет прекращена загрузка операционной системы и будет выполнена перезагрузка. * Ignore — продолжить загрузку операционной системы, не обращая внимания на возникшую ошибку.

Sc description «имя службы» «новая строка описания» Изменяет строку описания для данной службы.

Sc failure «имя службы» reset=«интервал стабильной работы службы (в секундах)» reboot=«широковещательное сообщение» command=«команда, выполняемая при возникновении ошибки в работе службы» actions=«действия при ошибке» Данная команда позволяет изменить поведение операционной системы в случае возникновения ошибки при запуске указанной в команде службы. Она поддерживает следующие значения своих опций.

Опция reset= определяет интервал работы службы без ошибок, после истечения которого, счетчик ошибок сбрасывается в 0 (на основе счетчика ошибок определяются действия, выполняемые при ошибке).

Опция reboot= определяет широковещательное сообщение, которое будет посылаться всем компьютерам сети при сбое в работе службы.

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

* Run — не обращать внимания на ошибку; * Restart — выполнить перезапуск службы; * Reboot — выполнить перезагрузку компьютера.

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

То есть, общий формат значения опции actions= следующий: действие первое/интервал первый/действие второе/интервал второй/действие третье/интервал третий.

sc privs «имя службы» «список привилегий» Позволяет изменить список привилегий, предоставляемых соответствующей службе. Данная команда является нововведением Windows Vista. Управление службами

* Sc create «имя службы» [type=«тип службы»] [start=«тип запуска»] [error=«действие при ошибке»] [binpath=«путь к исполняемому файлу службы»] [group=«имя группы, к которой принадлежит служба»] [depend=«список служб и групп, которые должны быть запущены перед данной (пишутся черед косую черту «/»)»] [obj=«учетная запись пользователя, от имени которого запускается данная служба»] [displayname=«отображаемое имя службы»] [password=«пароль к используемой учетной записи пользователя»]. Данная команда позволяет создать новую службу. * Sc continue «имя службы». Выполняет запуск службы, которая ранее была приостановлена. * Sc control «имя службы» «управляющий код». Посылает службе указанный в команде управляющий код. Возможны следующие стандартные управляющие коды: paramchange, netbindadd, netbindremove, netbindenable, netbinddisable. Также можно указывать пользовательские коды, если служба их поддерживает. * Sc delete «имя службы». Данная команда удаляет указанную службу. * Sc pause «имя службы». Приостанавливает работу данной службы. * Sc start «имя службы» [«аргументы запуска»]. Выполняет запуск службы. * Sc stop «имя службы». Данная команда останавливает работу службы.

Другие команды

* Sc boot «ok или bad». Определяет, будет ли текущий сеанс работы компьютера сохраняться как последняя удачная конфигурация. Если в команде используется значение OK, тогда текущий сеанс работы компьютера будет сохраняться как последняя удачная конфигурация. * Sc interrogate «имя службы». С помощью данной команды можно обновить сведения о службе, получив новые сведения у диспетчера служб. * Sc lock. Данная команда блокирует работу диспетчера служб, после чего ни одна служба не сможет запуститься. Чтобы прекратить блокирование диспетчера служб, нужно нажать клавишу u. * Sc querylock. Определяет, заблокирована ли работа диспетчера служб, и если заблокирована, то кто именно и когда ее заблокировал.