Ниже приведен пример моего комментария, который просто устанавливает тип запуска, независимо от его текущего режима.Нет необходимости регистрировать текущие значения и сравнивать их в первую очередь, просто внесите необходимые изменения в конфигурацию:
@For %%A In (BrokerInfrastructure,BFE)Do @SC config %%A start= auto
@For %%A In (BITS,CDPSvc)Do @SC config %%A start= delayed-auto
@For %%A In (AxInstSV,AJRouter)Do @SC config %%A start= demand
Вам также необходимо запустить этот скрипт .cmd
от имени администратора
[Edit /]
Это расширение вышеприведенного кода, и я прокомментировал использование WMIC для получения не отключенных сервисов.Я включил его, чтобы следовать методологии отключения только тех служб, которые еще не отключены и которых нет в ваших списках конфигурации.
@Echo Off
SetLocal DisableDelayedExpansion
( For %%A In (BrokerInfrastructure,BFE
)Do SC config %%A start= auto>CON 2>&1&Echo(\^<%%A\^>
For %%A In (BITS,CDPSvc
)Do SC config %%A start= delayed-auto>CON 2>&1&Echo(\^<%%A\^>
For %%A In (AxInstSV,AJRouter
)Do SC config %%A start= demand>CON 2>&1&Echo(\^<%%A\^>
)>"mylist.txt"
For /F "Skip=1Delims=" %%A In ('WMIC Service Where "StartMode!='Disabled'"^
Get Name^|FindStr /IVG:"mylist.txt" 2^>Nul')Do For %%B In (%%A
)Do SC config %%B start= disabled
Del "mylist.txt"