2015-12-02 4 views
-1

Я объединил эту строку для отключения служб;пакетный цикл файлов, хотя службы для отключения

sc query% service% | найти «Запущен»> NUL 2> & чистая остановка% сервис% & & СБН конфиг% сервис% старт = отключено

В настоящее время у меня есть фактическое имя службы вместо переменной. Я хотел бы зациклиться, хотя список в пакетном включении/отключении каждого

для %% a sc запрос «wsearch» | найти "Запущен"> NUL 2> & чистая остановка "wsearch" & & СБН конфигурации "wsearch" начать = отключено Service1 service2 service3 )

Перебор каждого имени службы отключить. Любые идеи? Ваша помощь очень ценится.

ответ

1
echo disable services************* 
for %%x in (
"wsearch" 
"Mcx2Svc" 
"NetTcpPortSharing" 
"SharedAccess" 
"fax" 
"TabletInputService" 
"RemoteAccess" 
"UxSms" 
"Bdesvc" 
"EFS" 
"wmiApSrv" 
) do sc query %%x| find %%x >nul 2>&1 && net stop %%x && sc config %%x start= disabled 
+0

Это драгоценный камень из раствора, но следует помнить, что если вы запустите этот на удаленном компьютере отключен «RemoteAccess», который больше не позволит вам войти в систему! – degenerate

1

Если я правильно понял ваш вопрос, следующий фрагмент кода может помочь:

@ECHO OFF 
SETLOCAL EnableExtensions 
rem loop against a list of several service names 
for %%G in (
    WinDefend 
    "WSearch" 
    FooBar 
) do sc query "%%~G" >NUL && (
    rem next line merely for debugging: 
    sc qc "%%~G" | find ":" 
    rem instead of above line: 
    rem your code snippet to change the configuration of a service here 
) || (
    rem perhaps the specified service does not exist as an installed service 
    echo "%%~G" service unknown/not found 
) 

Ресурсы (обязательное чтение):

+0

Я ценю вашу помощь. Я снимал для 1 лайнера, как показано ниже; , поэтому я могу просто ослабить каждое имя службы. Один для отключения одного для ручной для автоматического. Есть ли способ просто перечислить список сервисов? : начало cd c: \ windows \ System32 for/f "skip = 3 tokens = 1" %% i in ('TASKLIST/FI "USERNAME eq% userdomain% \% username%"/FI "STATUS eq running "') do ( echo %% i if not" %% i "==" svchost.exe "( если нет" %% i "==" explorer.exe "( если нет" %% i " == «cmd.exe» ( , если не «%% я» == «tasklist.exe» ( ) ) ) ) –

0

Я ценю вашу помощь. Я снимал для 1 лайнера, как показано ниже; , поэтому я могу просто ослабить каждое имя службы. Один для отключения одного для ручной для автоматического. Есть ли способ просто перечислить список сервисов?

:start 
cd c:\windows\System32 
for /f "skip=3 tokens=1" %%i in ('TASKLIST /FI "USERNAME eq %userdomain%\%username%" /FI "STATUS eq running"') do (
echo %%i 
if not "%%i"=="svchost.exe" (
if not "%%i"=="explorer.exe" (
if not "%%i"=="cmd.exe" (
if not "%%i"=="tasklist.exe" (
) 
) 
) 
) 
Смежные вопросы