バッチ ファイルを使用して Windows アップデートを照会し、オンとオフを切り替えるにはどうすればよいですか?

バッチ ファイルを使用して Windows アップデートを照会し、オンとオフを切り替えるにはどうすればよいですか?

これは初めての投稿なので場違いなことを言っても大目に見てください。:-) ですが、バッチ ファイルを使用して Windows Update サービスを照会し、現在の状態に基づいてサービスをオンまたはオフにする方法を探していました。最終的には、サービスが開始されているかどうかを照会して停止できるようにしたいと考えています。さらに、Windows で自動的に開始するように設定されているかどうかを照会して無効にできるようにしたいと考えています。次に、同じバッチ ファイルを使用して照会し、可能であれば他の操作を実行します。たとえば、オンの場合はオフにします。オフの場合はオンにします。または、照会してから、サービスのオフ/オンのままにするか、状態を変更して開始するかを選択できます。

私は、次のコマンドを使用して、これらのことを個別に実行する方法を見つけました (主にこのサイトを通じて)。

  • sc 起動 wuauserv
  • sc 停止 wuauserv
  • クエリwuauserv
  • sc config wuauserv 開始 = 自動
  • sc config wuauserv 開始=無効

したがって、これらを使用して、サービスを停止して起動時に無効にする 2 つの異なるファイルと、サービスを開始して起動を自動に設定する別のファイルを作成できますが、可能であれば、これらすべてを 1 つのファイルで実行したいと思います。

ということで、とても長くなりましたが、自分の目的を確実に伝え、事前の調査を行ったことを示したかったのです。

更新: あなたの例を少し拡大する必要がありました: ここに画像の説明を入力してください これは私が作成した .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 をファイルに実行させたい項目に置き換えます。

例:スクリプトデモ

関連情報