Jak zapytać, a następnie włączyć i wyłączyć aktualizacje systemu Windows za pomocą pliku wsadowego?


3

Nie przejmuj się, jeśli mówię nie na miejscu, to mój pierwszy post. :-), ale szukałem sposobu na wysłanie zapytania do usługi Windows Update za pomocą pliku wsadowego i w oparciu o jego aktualny stan albo wyłączyć, albo włączyć. Ostatecznie chcę móc zapytać, czy usługa jest uruchomiona, a następnie zatrzymać ją. Co więcej, chcę móc zapytać, czy jest ustawiony na automatyczne uruchamianie w systemie Windows i wyłączenie. Byłem wtedy tym samym plikiem wsadowym, aby wysłać zapytanie i ewentualnie przejść do drugiego. jak jeśli włączony, wyłącz. Jeśli wyłączone, włącz. lub ewentualnie zapytanie, a następnie pozostaw opcję wyłączenia / włączenia lub zmiany stanu i rozpoczęcia usługi.

Dowiedziałem się, jak robić te rzeczy osobno (głównie za pośrednictwem tej witryny), używając następujących poleceń:

  • sc start wuauserv
  • sc stop wuauserv
  • Zapytanie wuauserv
  • sc config wuauserv start = auto
  • sc config wuauserv start = wyłączone

Dzięki nim mogę utworzyć dwa różne pliki, aby zatrzymać usługę i wyłączyć ją podczas uruchamiania oraz osobny plik, aby uruchomić usługę i ustawić automatyczne uruchamianie uruchamiania, ale chciałbym to wszystko zrobić z jednym plikiem, jeśli to możliwe.

Tak długo to trwało, ale chciałem upewnić się, że osiągnąłem swój cel i pokazać, że przeprowadziłem badania zapobiegawcze.

Aktualizacja: musiałem trochę powiększyć twój przykład: wprowadź opis zdjęcia tutaj tak wygląda mój, kiedy kliknąłem utworzony plik .bat prawym przyciskiem myszy i uruchomiłem go jako administrator: wprowadź opis zdjęcia tutaj

Zauważyłem, że używasz Windows 8.1 i im w Windows 7. Czy to robi różnicę?

Odpowiedzi:


1

Oto jak:

@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

Należy pamiętać, że ten plik wsadowy musi być uruchomiony jako administrator. Akceptuje parametry q, start, stop, enable, disablei można go uruchomić przy użyciu tej składni winupd qzamień q na element, który chcesz zrobić w pliku.

Przykład: demo skryptu


Dzięki za odpowiedzi. ale kiedy kopiuję i wklejam ten kod do pliku test.bat, przechodzi on bezpośrednio do „Niepoprawnego polecenia! Prawidłowa składnia to: q, wyłącz, włącz, zatrzymaj, uruchom”. Czy jest coś, co muszę zrobić, aby uruchomić?
Używam

@ RidleyJ329 musisz uruchomić go ze składnią, tj. winupd qLubwinupd start
td512

Przepraszam, jeśli może brakuje mi gdzieś prostego kroku, ale nadal nie działa ono dla mnie.
Dołączyłem

@ RidleyJ329 używa składni, którą stwierdza. Jeśli spojrzysz na obraz w mojej odpowiedzi, podałem skryptowi, który jest qdo zapytania. aby go użyć, musisz umieścić ten skrypt w C:\Windows\System32folderze, aby móc wywoływać go z wiersza poleceń, tak jak ja
td512

@ RidleyJ329 Musisz dać skryptowi coś do zrobienia, dlatego istnieją polecenia. musisz to dać
td512
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.