我該如何查詢,然後透過批次檔關閉和開啟 Windows 更新?

我該如何查詢,然後透過批次檔關閉和開啟 Windows 更新?

如果我說得不合時宜,請對我寬容一點,因為這是我的第一篇文章。 :-) 但我一直在尋找一種透過批次檔查詢 Windows 更新服務的方法,並根據其當前狀態將其關閉或開啟。最終,我希望能夠查詢服務是否啟動,然後停止它。最重要的是,我希望能夠查詢它是否設定為隨 Windows 自動啟動並停用。然後我使用同一個批次文件來查詢,並可能轉到另一個。就像如果打開,則關閉。如果關閉,請開啟。或者可能會查詢,然後提供關閉/開啟或變更服務狀態和啟動的選項。

我找到瞭如何使用以下命令單獨執行這些操作(主要是透過此網站):

  • sc 啟動 wuauserv
  • sc 停止 wuauserv
  • 查詢wuauserv
  • sc 設定 wuauserv 啟動 = 自動
  • sc config wuauserv start= 停用

因此,有了這些,我可以創建兩個不同的文件來停止服務並在啟動時禁用它,並創建一個單獨的文件來啟動服務並將啟動設置為自動,但如果可能的話,我想用一個文件來完成這一切。

所以這篇文章很長,但我想確保我實現了我的目標,並表明我確實做了一些先發製人的研究。

更新:必須放大一點你的範例: 在此輸入影像描述 這就是我右鍵單擊我創建的 .bat 檔案並以管理員身份運行它時的樣子: 在此輸入影像描述

我注意到您似乎使用的是 Windows 8.1,而 IM 使用的是 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 替換為您希望檔案執行的操作。

例子:腳本示範

相關內容