我该如何查询,然后通过批处理文件打开和关闭 Windows 更新?

我该如何查询,然后通过批处理文件打开和关闭 Windows 更新?

如果我说得不恰当,请别介意,因为这是我的第一篇帖子。:-) 但我一直在寻找一种方法来通过批处理文件查询 Windows 更新服务,并根据其当前状态将其关闭或打开。最终,我希望能够查询服务是否已启动,然后停止它。最重要的是,我希望能够查询它是否设置为随 Windows 自动启动并禁用。然后我使用相同的批处理文件进行查询,并可能转到另一个。例如,如果打开,则关闭。如果关闭,则打开。或者可能查询,然后提供关闭/打开或更改服务状态和启动的选项。

我找到了如何通过使用以下命令分别执行这些操作(主要是通过此站点):

  • sc 启动 wuauserv
  • sc 停止 wuauserv
  • 查询 wuauserv
  • sc config wuauserv 启动=自动
  • 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 替换为您希望文件执行的项目。

例子:脚本演示

相关内容