Как получить все службы автозапуска на Windows, используя пакет? - PullRequest
0 голосов
/ 06 сентября 2018

Мне нужно перечислить все сервисы со специальным именем и индексом и их статус автозапуска.Я думал о том, чтобы использовать пакет и что-то вроде запроса sc, но это не дает мне необходимой информации.

Это то, что я пробовал

sc query service
sc query service2
sc query service3
pause

Какая команда подходит для отображения настроек запуска для службы?

1 Ответ

0 голосов
/ 06 сентября 2018

Я бы лучше использовал powershell, так как sc query по умолчанию не отображает тип запуска:

Чтобы увидеть тип запуска по отображаемому имени, откройте cmd.exe и введите (или вставьте):

powershell "Get-Service | select -property displayname,starttype"

или по имени службы Actaul:

powershell "Get-Service | select -property name,starttype"

или вы можете создать скрипт powershell, создав файл и присвоив ему расширение .ps1 и добавив:

Get-Service | select -property name,starttype

или, если вы действительно хотите использовать пакетный файл, просто создайте пакетный файл с расширением .cmd или .bat и добавьте:

powershell "Get-Service | select -property name,starttype"

Но, если вы действительно решили использовать пакетный режим, вы можете запустить его, который запускает 2 для циклов, один для получения всех служб, второй для каждого типа запуска. set просто для очистки ненужных предметов.

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('sc query ^|findstr "SERVICE_NAME"') do (
   set serv=%%j
   set serv=!serv: =!
  for /f "tokens=1,2 delims=:" %%a in ('sc qc !serv! ^| findstr "START_TYPE"') do set type=%%b
    set type=!type: =!
    set type=!type:1=!
    set type=!type:2=!
    set type=!type:3=!
    echo !serv! : !type!
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...