如果我說得不合時宜,請對我寬容一點,因為這是我的第一篇文章。 :-) 但我一直在尋找一種透過批次檔查詢 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 替換為您希望檔案執行的操作。
例子: