Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пакетные файлы.doc
Скачиваний:
23
Добавлен:
02.12.2018
Размер:
129.02 Кб
Скачать

Остановка и запуск системных сервисов

Для остановки и запуска служб Win2K/XP из командной строки используется команда NET.EXE

NET.EXE STOP < имя службы >

NET.EXE START < имя службы >

Возможно использование как короткого, так и полного имени ("Dnscache" - короткое, "DNS-клиент" - полное имя службы). Имя службы, содержащее пробелы заключается в двойные кавычки. Пример перезапуска службы “DNS-клиент”

net stop "DNS-клиент"

net start "DNS-клиент"

То же, с использованием короткого имени:

net stop Dnscache

net start Dnscache

Полное имя службы можно скопировать из “Службы” – < Имя службы > - “Свойства” - “Выводимое имя”

Для управления службами гораздо удобнее воспользоваться утилитой PsService.exe из утилит PsTools Утилита не требует установки и работает в любой OS Windows. Кроме запуска и остановки службы, позволяет выполнить поиск конкретной службы на компьютерах локальной сети, опросить состояние и конфигурацию службы, изменить тип запуска, приостановить службу, продолжить, перезапустить.

Для работы с системными службами в Windows XP можно использовать утилиту sc.exe, позволяющую не только остановить/запустить службу, но и опросить ее состояние, параметры запуска и функционирования, изменить конфигурацию, а также работать не только с системными службами, но и с драйверами. При наличии прав, имеется возможнасть управлять службами не только на локальной, но и на удаленной машине. Примеры: sc.exe stop DNSCache - остановить службу DNSCache на локальном компьютере. sc \\192.168.0.1 query DNSCache - опросить состояние службы DNSCache на компьютере c IP-адресом 192.168.0.1 sc \\COMP start DNSCache запустить службу DNSCache на компьютере COMP Подсказку по работе с утилитой можно получить, введя: sc /?

Выдача значения переменной errorlevel

Этот простенький командный файл выдаст на экран значение переменной ERRORLEVEL по конкретной командной строке. Вначале выполняется проверка на наличие хотя бы одного входного параметра, и если ничего не задано, выдается сообщение об ошибке и происходит завершение по exit. Если же хотя бы один параметр задан, то входные параметры считаются командной строкой и выполняются, а значение ERRORLEVEL выдается с помощью команды ECHO. Содержимое файла (я назвал его echoEL.bat):

@echo off if "%1" NEQ "" GOTO PARMOK ECHO Нужно задать командную строку для определения ERRORLEVEL exit :PARMOK %1 %2 %3 %4 %5 %6 %7 %8 ECHO %1 %2 %3 %4 %5 %6 %7 %8 ERRORLEVEL=%ERRORLEVEL%

Примеры запуска:

echoEL.bat NET SHARE - будет выполнена команда NET SHARE (выдать список разделяемых сетевых ресурсов) и выдан код ERRORLEVEL echoEL.bat NET SHARE X"="C:\ - будет выполнена команда NET SHARE X:=C:\ (создать разделяемый сетевой ресурс с именем X, и путем в корневой каталог диска C:) Обратите внимание на то, что символ = заключен в двойные кавычки. Перечисленные выше варианты задают корректную командную строку. Но попробуйте задать неверный параметр для NET.EXE или вообще несуществующую команду и вы увидите, какое значение примет ERRORLEVEL. И УЧТИТЕ, что командная строка реально ВЫПОЛНЯЕТСЯ и, например, вариант "echoEL.bat format A:" запустит форматирование дискеты в дисководе A:.