Пожалуйста, не судите строго, если я говорю не к месту, это мой первый пост. :-) но я искал способ запросить службу Windows Update через пакетный файл и на основе ее текущего состояния либо отключить ее, либо включить. В конечном счете, я хочу иметь возможность запросить, запущена ли служба, а затем остановить ее. Кроме того, я хочу иметь возможность запросить, настроена ли она на автоматический запуск с Windows и отключить. Затем я должен был запросить тот же пакетный файл и, возможно, пойти другим путем. например, если включено, выключить. Если выключено, включить. или, возможно, запросить, а затем предоставить возможность оставить выключенным/включенным или изменить состояние и запустить службу.
Я узнал, как сделать все это по отдельности (в основном через этот сайт), используя следующие команды:
- sc запустить wuauserv
- sc остановить wuauserv
- Запрос wuauserv
- sc config wuauserv start= авто
- sc config wuauserv start= отключен
Таким образом, с их помощью я могу создать два разных файла, чтобы остановить службу и отключить ее при запуске, и отдельный файл для запуска службы и установки автоматического запуска, но я бы хотел сделать все это с помощью одного файла, если это возможно.
Итак, это было так длинно, но я хотел убедиться, что я донес свою цель и показал, что я провел некоторые предварительные исследования.
Обновление: пришлось немного увеличить ваш пример: вот как выглядит мой пример, когда я щелкнул правой кнопкой мыши по созданному мной .bat-файлу и запустил его от имени администратора:
Я заметил, что вы, судя по всему, используете Windows 8.1, а я — Windows 7. Это имеет значение?
решение1
Вот как:
@echo off
@title Windows Update Status Tool
IF "%~1"=="" goto ERROR
IF "%~1"=="q" goto Q
IF "%~1"=="disable" goto DISABLE
IF "%~1"=="stop" goto STOP
IF "%~1"=="start" goto START
IF "%~1"=="enable" goto ENABLE
:Q
sc query wuauserv
pause
goto EOF
:DISABLE
sc config wuauserv start=disabled
echo Done!
pause
goto EOF
:STOP
sc stop wuauserv
goto EOF
:START
sc start wuauserv
goto EOF
:ENABLE
sc config wuauserv start=auto
echo Done!
pause
goto EOF
:ERROR
echo Invalid command! Valid syntax is: q, disable, enable, stop, start.
pause
goto EOF
:EOF
Имейте в виду, что этот пакетный файл должен быть запущен от имени администратора, чтобы его можно было использовать. Он принимает параметры q, start, stop, enable, disable
и может быть запущен с использованием этого синтаксиса, winupd q
замените q на элемент, который вы хотите, чтобы файл выполнил.
Пример: