Управление службами через CMD
Управление системными службами через командную строку
Службы обеспечивают ключевые функции рабочих станций и серверов. Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (service controller command) SC, имеющая набор подкоманд, здесь описывается лишь их некоторая часть.
Для удобства пользования в командной строке используются сокращенные названия служб Windows (например, Spooler — диспетчер очереди печати, Dhcp — DHCP-клиент, W32Time — Служба времени Windows и т.п., см таблицу по ссылке).
Команды SC — настройка, запуск и останов системный служб Windows
- SC config — настройка учетных записей регистрации и запуска служб;
- SC query — вывод списка всех служб, настроенных на компьютере;
- SC qc отображение конфигурации определенной службы;
- SC start — запуск служб;
- SC stop — останов служб;
- SC pause — приостановка работы служб;
- SC continue — возобновление работы служб;
- SC failure — задание действий, выполняемых при сбое службы;
- SC qfailure — просмотр действий, выполняемых при сбое службы.
Примеры работы с командами SC
Во всех командах можно указывать имя удаленного компьютера, со службами которого вы хотите работать. Для этого вставьте UNC-имя (например, \Roza) или IP-адрес (например, 192.168.1.1) компьютера перед используемой подкомандой. Вот синтаксис: sc ИмяСервера Подкоманда.
Пример команды sc на компьютере с Windows 10:
- sc \Roza query SpoolerЧтобы получить список всех служб, настроенных в системе, введите в командной строке команду: sc query type=service state=all или sc ИмяСервера query type=service state=all где ИмяСервера — UNC-имя или IP-адрес удаленного компьютера.
The services in Windows can be listed using the Service Manager tool.
To start the Service Manager GUI, press ⊞ Win keybutton to open the “Start” menu, type in services
to search for the Service Manager and press Enter to launch it.
The services can also be listed using the command-line prompt (CMD) or the PowerShell.
In this note i am showing how to list the services and how to search for a specific service in Windows using the command-line prompt (CMD) or the PowerShell.
Cool Tip: List processes in Windows from the CMD! Read more →
List Services Using Command Line (CMD)
List all services:
C:> sc queryex type=service state=all
List service names only:
C:> sc queryex type=service state=all | find /i "SERVICE_NAME:"
Search for specific service:
C:> sc queryex type=service state=all | find /i "SERVICE_NAME: myService"
Get the status of a specific service:
C:> sc query myService
Get a list of the running services:
C:> sc queryex type=service - or - C:> sc queryex type=service state=active -or - C:> net start
Get a list of the stopped services:
C:> sc queryex type=service state=inactive
Cool Tip: Start/Stop a service in Windows from the CMD & PowerShell! Read more →
List all services:
PS C:> Get-Service
Search for specific service:
PS C:> Get-Service | Where-Object {$_.Name -like "*myService*"}
Get the status of a specific service:
PS C:> Get-Service myService
Get a list of the running services:
PS C:> Get-Service | Where-Object {$_.Status -eq "Running"}
Get a list of the stopped services:
PS C:> Get-Service | Where-Object {$_.Status -eq "Stopped"}
Как в командном файле получить список служб Windows? Как узнать, установлена ли определённая служба? Как проверить её состояние? Как её перезапустить?
Получить ответы на эти важные вопросы помогут команды SC и NET.
Для получения списка служб используется команда:
sc query type= service
Она перечисляет службы, выводя для каждой следующую информацию:
Имя_службы: wuauserv Выводимое_имя: Центр обновления Windows Тип : 20 WIN32_SHARE_PROCESS Состояние : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_PRESHUTDOWN) Код_выхода_Win32 : 0 (0x0) Код_выхода_службы : 0 (0x0) Контрольная_точка : 0x0 Ожидание : 0x0
Важно, что язык вывода может быть разным (зависит от языковой версии Windows, региональных настроек), т.е. при написании командного файла необходимо учитывать, что вывод для той же службы может быть и таким:
SERVICE_NAME: wuauserv DISPLAY_NAME: Automatic Updates TYPE : 20 WIN32_SHARE_PROCESS STATE : 4 RUNNING (STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
Проверить наличие определённой службы можно поиском, например:
sc query type= service | findstr /i "wuauserv"
Если служба существует, вывод будет содержать строчку, а код возврата будет 0.
Если такой службы нет, вывод будет пустым, а код возврата 1.
Важно! В качестве строки поиска здесь используется внутреннее имя службы, которое не зависит от языковых настроек (DISPLAY_NAME зависит).
Для проверки конфигурации и статуса можно использовать команду SC QUERY
, команда работает с внутренними именами, поэтому для проверки службы Планировщик задач можно написать SC QUERY schedule
, и это будет работать везде. Проверить, запущена ли служба, можно по наличию строки RUNNING или STOPPED:
sc query schedule | find "RUNNING"
Команда NET START
перечисляет все запущенные службы по одной на строчку, что делает работу с ней простой, например, проверить, что служба запущена, можно командой NET START | find «Планировщик заданий». Но необходимо учитывать, что эта команда работает с пользовательскими именами (Display Name) служб и приведённая команда не сработает в англоязычных региональных настройках.
Службы Windows (Windows Service) — приложения (программы), работающие в фоновом режиме, без пользовательского интерфейса. Грубо говоря, некий аналог демонов в Unix системах.
Управление работой служб с помощью консоли управления.
Для управления службами в Windows существует графическая утилита — службы (services.msc), для ее запуска необходимо перейти:
Панель управления (Control Panel) —> Администрирование (Administrative Tools) —> Службы (Services) или в строке поиска меню Пуск (Start) ввести services.msc.
Вид окна службы services.msc.
Из этой консоли можно просматривать, запускать, останавливать, изменять параметры и тип запуска служб.
Различные варианты запуска служб.
1) Автоматически (отложенный запуск) — служба будет запущена спустя некоторое время после старта операционной системы, используется для служб, ненужных при загрузке операционной системы, позволяет оптимизировать процесс загрузки.
2) Автоматически — служба будет запущена при старте операционной системы.
3) Вручную — служба запускается пользователем, приложениями или другими службами.
4) Отключена – службу нельзя запустить.
Примечание: Существует еще один вариант (обязательная служба) — автоматически запускается и пользователь не может остановить эту службу).
Управление службами из командной строки.
Службами window можно управлять не только используя графическую утилиту, но и из командной строки windows cmd. Для запуска переходим в пункт меню: Пуск —> Выполнить —> В строку вводим команду cmd.exe. Ниже приведу команды для управления службами.
Остановка службы.
sc stop [имя_службы]
Запуск службы.
sc start [имя_службы]
Удаление службы.
sc delete [имя_службы]
Установка режима запуска службы:
sc config [имя_службы] start= [параметр_запуска] параметр_запуска: auto - автоматически. demand - вручную. disabled - отключена. Примечание: После start= должен идти обязательно пробел.
Запрос данных конфигурации для службы.
sc qc [имя_службы]
Просмотр всех служб:
sc query
Для удобства чтения выводимой информации используем утилиту more.
sc query | more
Для копирования вывода в буфер используем утилиту clip.
sc query | clip
Вывод справки по команде sc.
sc ?
Примечание: Если имя службы содержит пробелы, то необходимо его заключить в кавычки.
sc delete “Events Utility”
Особенностью служб является то, что они запускаются от имени пользователя LocalSystem — обладающего полными правами в системе.
Список всех служб расположен в ветке реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
На этом заканчиваем знакомство со службами windows. Надеюсь статья была полезная.
Иногда вам может понадобится, взять управление службами Windows 10. Чтобы остановить некоторые службы, запустить, отключить службу, задержать запуск или возобновить или приостановить службу Windows. Необходимо использовать встроенный инструмент в операционной системе Windows -оснастку «Службы». Эта небольшая статья покажет вам, как запустить, остановить или перезагрузить любую службу в Windows 10, с помощью диспетчера Служб, а также Командной строки.
Службы Windows, обычно запускаются, при старте компьютера в фоновом режиме. Грубо говоря, они обрабатывают задачи низкого уровня, которые как правило не требуют взаимодействия с пользователем. В диспетчере управления службами вы сможете запускать, останавливать, отключать, отложить запуск Служб Windows 10. Давайте посмотрим, как сделать это более подробно.
4 способа как открыть «Службы» в Windows 10.
Способ 1. Открыть службы Windows можно с помощью диалогового окна «Выполнить».
Нажмите сочетание клавиш Win + R и введите или скопируйте и вставьте команду: services.msc в диалоговом окне «Выполнить» и нажмите Enter. Это откроет оснастку «Диспетчер служб».
Способ 2. Открыть службы Windows можно с помощью меню WinX.
Кликните правой кнопкой мыши на кнопку «Пуск» или нажмите сочетание клавиш Win + X в открывшемся меню выберите «Управление компьютером», далее перейдите «Службы и приложения» → «Службы».
Способ 3. Открыть службы Windows с помощью Поиска Windows.
Откройте меню «Пуск» и начните набирать слово «Служб» на клавиатуре, в найденных результатах кликните мышкой «Службы», это откроет нужную нам оснастку.
Способ 4. Открыть службы Windows с помощью Классической панели управления.
Откройте классическую панель управления. Перейдите Панель управленияСистема и безопасностьАдминистрированиеСлужбы
В диспетчере, вы увидите список служб, работающих в системе. Вы также будете иметь возможность посмотреть статус любой Службы — Имя, Описание, Состояние (работает или остановлена), Тип запуска и др..
Типы запуска служб Windows 10.
Windows 10 предлагает четыре типа запуска:
- Автоматический
- Автоматически (отложенный запуск)
- Вручную
- Отключена.
Запуск, остановка, отключение служб Windows 10.
Для запуска, остановки, приостановки, возобновления или перезагрузки любой службы Windows, выберите службу и кликните правой кнопкой мыши на ней. Вам будут предложены эти варианты. См скрин.
Если вы хотите управлять большим количеством опций, дважды кликните на службе, чтобы открыть окно «Свойства».
В раскрывающемся меню «Тип запуска», вы сможете выбрать как будет запускаться редактируемая вами служба.
В строке Состояние, вы увидите кнопки «Запустить», «Остановить», «Приостановить», «Продолжить» (Возобновить службу).
В окне Свойств, вы также увидите другие вкладки, которые предлагают дополнительные опции и информацию — «Вход в систему», «Восстановление» и «Зависимости».
После того, как вы внесете изменения, вы должны нажать на кнопку «Применить» и при необходимости перезагрузить компьютер, для того чтобы изменения вступили в силу.
Управление службами с помощью Командной строки Windows.
Вы также можете использовать командную строку для Запуска, Остановки, Приостановки, и Возобновления любой службы.
Откройте командную строку (от имени администратора) и выполните одну из следующих команд:
Для примера используется служба
Запустить службу:
net startservice
Остановить службу:
net stopservice
Приостановить обслуживание:
net pauseservice
Возобновить обслуживание:
net continueservice
Примечание: Не рекомендуется изменять настройки по умолчанию, если вы не знаете, что вы делаете, так как это может вызвать проблемы в вашей операционной системе.
Рекомендуем: Все способы открыть Службы в Windows 11
Всем, привет, в данной статье мы научимся получать список служб Windows как используя командную строку, так и сценарии Windows Script Host. Но, сначала немного лирики … рядовой пользователь ОС Windows всегда находится в самообмане: если он крякнул антивирусную программу, значит она его защитит перед всеми злодеями, если у него модная Семерка, значит он мастер, а у кого XP, так те – цифровые динозавры.
Любой программный код подвержен ошибкам и багам, так в старых версиях XP была учетная запись Администратор (Administrator), она не отображалась при загрузке, но была активной, естественно, пароль на ней не стоял, и ваш сосед по комнате мог спокойно, в момент вашего отсутствия войти в систему с правами администратора и наколдовать что угодно, для этого достаточно было в окне выбора пользователя ввести заветную комбинацию CTRL + ALT + DEL, далее ввести имя юзера Администратор (Administrator) и нажать вход, и … вуалая, вы в системе!!! Тоже относится и к сервисам, практически все они работают под системной учеткой, на которой также нет ни пароля, ни ограничений, если они активны, ну… например, telnet, или служба Удаленный реестр, то… тоже можно нашалить.
И поэтому, в этой статье мы попробуем получить список служб используя командную строку и сценарии Windows Script Host, кодить будем на языке vbscript и jscript.
Сам сервер Windows Script Host не предоставляет объекта для работы со службами системы, тут есть два пути или утилиты командной строки, или WMI. В этой статье мы рассмотрим первый способ, и так… усаживайтесь поудобней, берите пиво и тараньку, … начинаем.
Если запустить командную строку и прописать на выполнение строчку sc query, то мы получим список и параметры всех сервисов Windows, при желании, его можно импортировать в текстовый файл:
Sc query> “D:workservice.txt”
Тут мы указали, что данные должны выводиться не на экран, а в текстовый файл service.txt в папку D:work. Лады, давайте взглянем, что нам наколдовала утилита sc query:
Из скрина видно, что информация о службе выводится в отдельном блоке, давайте его проанализируем:
SERVICE_NAME: AudioSrv – тут отображается сокращенный формат названия
DISPLAY_NAME: Windows Audio — описательный формат имени службы
TYPE : 20 WIN32_SHARE_PROCESS — тип службы
STATE : 4 RUNNING(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) – состояние и параметры работы
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Последние четыре строки нам пока не представляют интерес.
Ладно, теперь давайте посмотрим, как можно задать параметры фильтрации:
type — определяем тип, например,driver — драйвер, service – сервис (стоит по умолчанию), all – все.
state — определяет статус, например, active – активная (значение по умолчанию), inactive — неактивная, all – все.
bufsize — размер буфера перечисления в байтах, по умолчанию 4096
ri – номер индекса, начиная с которого начинается или возобновляется перечисление, по умолчанию значение 0
group — группа служб для перечисления, по умолчанию стоит all groups.
И так, что бы задать фильтр, мы прописываем команду sc query,пробел, далее пишем имя фильтра, знак равенства, пробел и значение.
Так, что бы получить список неактивных служб, командная строка требует следующий синтаксис:
Sc query state= inactive> “D:workservice.txt”
В свое время, на это я ставил точку и заканчивал статью, но… не на этом блоге.
Давайте сделаем так, что бы в диалоговом окне задать нужные параметры, и получить полный или отфильтрованный список, ясен пень, что в командной строке это не реализовать, то мы будет использовать сценарии сервера WSH и объект WindowSystemObject.
Вот как выглядит будущая форма для сценария:
Сперва мы напишем пример на языке vbscript, я в нем все разъясню, что бы было понятно, что к чему, а потом на его основе мы напишем пример на языке jscript.
И так, приступаем!!!
' ***********************************************************' Список служб командная строка' service.vbs' *********************************************************** OptionExplicit dim WSO, WshShell, FSOdim f, t, cur_dir, temp_file, edit1dim type_f, state_f, bufsize_f, ri_fdim Button_Analice, Button_Open, Button_Clearedim data_file '*************создаем ссылки на объекты************* set WSO = CreateObject("Scripting.WindowSystemObject") set WshShell = CreateObject("Wscript.Shell") set FSO = CreateObject("Scripting.FileSystemObject")'*************************************************************************'Задаем начальные размеры и отступыset f = WSO.CreateForm(0,0,0,0)'Задаем через свойства ширину и высотуf.ClientWidth = 600f.ClientHeight = 650'Центрируем формуf.CenterControl()'Заголовок окнаf.Text = "Список служб командная строка"'нельзя менять размерыf.SizeGrip = false'нельзя развернуть формуf.MaximizeBox = false ' Текущий каталог cur_dir = WshShell.CurrentDirectory' путь к временному файлу temp_file = WShShell.ExpandEnvironmentStrings("%TEMP%") & "" & FSO.GetTempName 'Поле для вывода данныхset edit1 = f.CreateEdit(0,0,400,650,WSO.Translate("ES_MULTILINE"))edit1.ScrollBars = WSO.Translate("SS_BOTH")edit1.ReadOnly = trueedit1.WordWrap = true '**************************** Тип ********************************************f.TextOut 410,10,"Тип:"'Списокset type_f = f.CreateComboBox(480,10,100,20,WSO.Translate("CBS_DROPDOWNLIST")) type_f.add("driver")type_f.add("service")type_f.add("all")type_f.ItemIndex=2'***************************************************************************************** '**************************** Статус ********************************************f.TextOut 410,40,"Статус:"'Списокset state_f = f.CreateComboBox(480,40,100,20,WSO.Translate("CBS_DROPDOWNLIST")) state_f.add("active")state_f.add("inactive")state_f.add("all")state_f.ItemIndex=1'***************************************************************************************** '**************************** Буфер ********************************************f.TextOut 410,70,"Буфер:"'Поле для вводаset bufsize_f = f.CreateEdit(480,70,100,20,WSO.Translate("ES_MULTILINE"))'Задаем тип вводимых данныхbufsize_f.DataType=WSO.Translate("DT_INTEGER")bufsize_f.Text="4096"'***************************************************************************************** '**************************** Номер индекса ********************************************f.TextOut 410,100,"Индекс:"'Поле для вводаset ri_f = f.CreateEdit(480,100,100,20,WSO.Translate("ES_MULTILINE"))'Задаем тип вводимых данныхri_f.DataType=WSO.Translate("DT_INTEGER")ri_f.Text="0"'***************************************************************************************** '*******************************************************************' ' кнопка получения данныхset Button_Analice = f.CreateButton(480,130,100,25,"Анализировать")Button_Analice.OnClick = getref("Analize") ' кнопка очистки данныхset Button_Cleare = f.CreateButton(480,160,100,25,"Очистить")Button_Cleare.OnClick = getref("Cleare") 'кнопка открытия файла с даннымиset Button_Open = f.CreateButton(480,190,100,25,"Открыть")Button_Open.OnClick = getref("Open") set t = f.CreateHyperLink(450,230,250,25,"www.scriptcoding.ru") f.Show()WSO.Run() 'Очищаем поля вывода информацииfunction Cleare() edit1.Text="" data_file=""endfunction 'Отправка запросаfunction Analize()dim type_date, state_date, bufsize_date, ri_datedim get_file_data Cleare() type_date = " type= " & type_f.Text state_date = " state= " & state_f.Text bufsize_date = " bufsize= " & bufsize_f.Text ri_date = " ri= " & ri_f.Text if type_f.Text = "service"then type_date = ""endif if state_f.Text = "active"then state_date = ""endif 'запуск командной строки для получения списка служб с выводом данных в файл WshShell.Run "cmd.exe /c sc query" & type_date & state_date & bufsize_date & ri_date & " > " & temp_file,1,true '***********открываем файл для считывания данных********************* set get_file_data=FSO.OpenTextFile(temp_file, 1, false) data_file = get_file_data.ReadAll get_file_data.Close'*********************************************************************************** edit1.Text = data_fileendfunction functionOpen()' открываем временный файл WshShell.Run "wordpad.exe " & temp_fileendfunction
И так, в комментариях я некоторые пункты разъяснил, поэтому сконцентрируемся на главном. Фактически, за весь процесс получения списка служб в командной строке отвечает функция Analize(), давайте остановимся на ней подробно:
Переменные type_date, state_date, bufsize_date и ri_date хранять в себе значения, которые прописаны в полях и списках формы, тут мы сразу вставляем имя флага и знак равенства. Далее происходит проверка флагов type и state, дело в том, что если им присвоить значения по умолчанию, то возникнет ошибка в самой командной строке, поэтому, все значения по умолчанию мы заменяем на пустую строку. Далее, используя функцию Run объекта WScript.Shell мы запускаем командную строку с параметрами для получения списка служб, переменная temp_file хранит путь к временному файлу, именно в него будет направлен вывод. Далее происходит открытие временного файла, считывание из него данных, и их запись в поле вывода на форме. При нажатии на кнопку Открыть, происходит вызов функции Open, которая отвечает за открытие временного файла программой wordpad.exe.
Скачать архив с примерами
А вот аналогичный пример, но уже на языке jscript:
// ***********************************************************// Список служб командная строка// service.js// *********************************************************** var WSO, WshShell, FSO;var f, t, cur_dir, temp_file, edit1;var type_f, state_f, bufsize_f, ri_f;var Button_Analice, Button_Open, Button_Cleare;var data_file; //*************создаем ссылки на объекты***********************WshShell = WScript.CreateObject("Wscript.Shell");FSO = WScript.CreateObject("Scripting.FileSystemObject");WSO = WScript.CreateObject("Scripting.WindowSystemObject");//****************************************************************************** //Задаем начальные размеры и отступыf = WSO.CreateForm(0,0,0,0);//Задаем через свойства ширину и высотуf.ClientWidth=600;f.ClientHeight=650;//Центрируем формуf.CenterControl();//Заголовок окнаf.Text="Список служб командная строка";//нельзя менять размерыf.SizeGrip=false;//нельзя развернуть формуf.MaximizeBox=false; // Текущий каталог cur_dir = WshShell.CurrentDirectory;// путь к временному файлу temp_file = WshShell.ExpandEnvironmentStrings("%TEMP%")+""+ FSO.GetTempName(); //Поле для вывода данныхedit1 = f.CreateEdit(0,0,400,650,WSO.Translate("ES_MULTILINE"));edit1.ScrollBars= WSO.Translate("SS_BOTH");edit1.ReadOnly=true;edit1.WordWrap=true; //**************************** Тип ********************************************f.TextOut(410,10,"Тип:");//Списокtype_f = f.CreateComboBox(480,10,100,20,WSO.Translate("CBS_DROPDOWNLIST")); type_f.add("driver");type_f.add("service");type_f.add("all");type_f.ItemIndex=2;//***************************************************************************************** //**************************** Статус ********************************************f.TextOut(410,40,"Статус:");//Списокstate_f = f.CreateComboBox(480,40,100,20,WSO.Translate("CBS_DROPDOWNLIST")); state_f.add("active");state_f.add("inactive");state_f.add("all");state_f.ItemIndex=1;//***************************************************************************************** //**************************** Буфер ********************************************f.TextOut(410,70,"Буфер:");//Поле для вводаbufsize_f = f.CreateEdit(480,70,100,20,WSO.Translate("ES_MULTILINE"));//Задаем тип вводимых данныхbufsize_f.DataType=WSO.Translate("DT_INTEGER");bufsize_f.Text="4096";//***************************************************************************************** //**************************** Номер индекса ********************************************f.TextOut(410,100,"Индекс:");//Поле для вводаri_f = f.CreateEdit(480,100,100,20,WSO.Translate("ES_MULTILINE"));//Задаем тип вводимых данныхri_f.DataType=WSO.Translate("DT_INTEGER");ri_f.Text="0";//***************************************************************************************** //*******************************************************************// // кнопка получения данныхButton_Analice = f.CreateButton(480,130,100,25,"Анализировать");Button_Analice.OnClick= Analize; // кнопка очистки данныхButton_Cleare = f.CreateButton(480,160,100,25,"Очистить");Button_Cleare.OnClick= Cleare; //кнопка открытия файла с даннымиButton_Open = f.CreateButton(480,190,100,25,"Открыть");Button_Open.OnClick= Open; t = f.CreateHyperLink(450,230,250,25,"www.scriptcoding.ru"); f.Show();WSO.Run(); //Очищаем поля вывода информацииfunction Cleare(){ edit1.Text=""; data_file="";} //Отправка запросаfunction Analize(){ Cleare() var type_date =" type= "+ type_f.Text; var state_date =" state= "+ state_f.Text; var bufsize_date =" bufsize= "+ bufsize_f.Text; var ri_date =" ri= "+ ri_f.Text; var type_date, state_date, bufsize_date, ri_date, get_file_data if(type_f.Text=="service"){type_date ="";} if(state_f.Text=="active"){state_date ="";} //запуск командной строки для получения списка служб с выводом данных в файл WshShell.Run("cmd.exe /c sc query"+ type_date + state_date + bufsize_date + ri_date +" > "+ temp_file,1,true); //***********открываем файл для считывания данных********************* get_file_data=FSO.OpenTextFile(temp_file,1,false) data_file = get_file_data.ReadAll() get_file_data.Close()//*********************************************************************************** edit1.Text= data_file} function Open(){// открываем временный файл WshShell.Run("wordpad.exe "+ temp_file);}
В принципе, тут нет ничего сложного, если что, задавайте вопросы в комментариях, буду рад ответить, также буду рад, если подпишитесь на обновление блога. Ну что же, мы рассмотрели примеры получения списка служб средствами командной строки и Windows Script Host.