Microsoft Updateを有効にする。ただし、コマンドラインで。

この記事は最終更新日から3年以上が経過しています。

Windows UpdateではなくMicrosoft Updateです。

Windows本体だけではなく、OfficeやVisual Studioまで更新してくれるサービスです。
世間ではあんまり評判よくないですが、自分はそこそこ活用してます。

これを有効化する操作自体は別に難しくないのですが、公式の方法ではGUIから設定する方法しか紹介されておらず、
端末が大量にある場合や、処理を自動化(無人化)したい場合に問題となります。
が、実はMicrosoft Updateを司るCOMコンポーネントを直接操作することで、
GUIを介さずにMicrosoft Updateを有効化することが出来ます。

有効化操作をバッチコマンド化し、グループポリシーなどを利用してタスクとして端末に配布すれば、
有効化しなければならない端末が複数あっても苦にならないでしょう。
何らかの理由でInternet Explorerが使えない場合や、「[スタート]メニューを使用して、更新プログラムを確認してください」などというエラーでMicrosoft Updateを有効化出来ない場合でもバッチコマンド経由なら有効化できます。

スクリプト(バッチファイル)

単にVBScriptやJScriptで実行しても結果は同じですが、管理者として実行させるにはバッチファイル形式のほうが便利なので、スクリプト埋込み式バッチファイルとして作成しています。

  • Windows7、Windows10で動作確認をしています。
  • コード利用は利用者の責任でお願いします

Microsoft Update有効化

MSUpdEnable.cmd
@if(0)==(0) ECHO OFF

net stop wuauserv
cscript.exe /nologo //E:JScript "%~f0" %*
net start wuauserv

GOTO :EOF
@end
@以降がJScript

var svc = WScript.CreateObject("Microsoft.Update.ServiceManager")
svc.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

Microsoft Update無効化

参考として無効化用スクリプトも。

MSUpdDisable.cmd
@if(0)==(0) ECHO OFF

net stop wuauserv
cscript.exe /nologo //E:JScript "%~f0" %*
net start wuauserv

GOTO :EOF
@end
@以降JScript

var svm = WScript.CreateObject("Microsoft.Update.ServiceManager");
svm.RemoveService("7971f918-a847-4430-9279-4a52d1efe18d");

解説
参考文書のスクリプトをJScriptに書き換えてバッチに埋め込んでます。
スクリプト実行前後でアップデートサービスを停止、再開しています。

使い方

スクリプトをコピペしてバッチファイルを作成、適当な場所に保存し、「管理者として実行」してください。
タスクスケジューラ等に組み込んでも構いません。

参考文書

Opt-In to Microsoft Update
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa826676(v=vs.85).aspx

Marukaziler
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした