Windowsにアップデートを強制的にチェックさせるにはどうすればよいですか?


25

Windowsの新規インストール(XPまたは7)後、Windowsの更新を「強制」するにはどうすればよいですか?

1週間後に「古い」Windows更新プログラムを取得したくないので、「1ステップ」で実行できますか?Windowsに更新プログラムのチェックを強制する「魔法の」コマンドはありますか。更新プログラムがある場合はインストールしますか?

回答:


12

スクリプトを使用して、更新を自動的に確認してインストールできます。これはXPまたはWindows 7で動作します。

ダウンロードできるスクリプトは多数ありますが、ここに私のスクリプトがあります。

' Written in 2007 by Harry Johnston, University of Waikato, New Zealand.
' This code has been placed in the public domain.  It may be freely
' used, modified, and distributed.  However it is provided with no
' warranty, either express or implied.
'
' Exit Codes:
'   0 = scripting failure
'   1 = error obtaining or installing updates
'   2 = installation successful, no further updates to install
'   3 = reboot needed; rerun script after reboot
'
' Note that exit code 0 has to indicate failure because that is what
' is returned if a scripting error is raised.
'

Set updateSession = CreateObject("Microsoft.Update.Session")

Set updateSearcher = updateSession.CreateUpdateSearcher()
Set updateDownloader = updateSession.CreateUpdateDownloader()
Set updateInstaller = updateSession.CreateUpdateInstaller()

Do

  WScript.Echo
  WScript.Echo "Searching for approved updates ..."
  WScript.Echo

  Set updateSearch = updateSearcher.Search("IsInstalled=0")

  If updateSearch.ResultCode <> 2 Then

    WScript.Echo "Search failed with result code", updateSearch.ResultCode
    WScript.Quit 1

  End If

  If updateSearch.Updates.Count = 0 Then

    WScript.Echo "There are no updates to install."
    WScript.Quit 2

  End If

  Set updateList = updateSearch.Updates

  For I = 0 to updateSearch.Updates.Count - 1

    Set update = updateList.Item(I)

    WScript.Echo "Update found:", update.Title

  Next

  WScript.Echo

  updateDownloader.Updates = updateList
  updateDownloader.Priority = 3

  Set downloadResult = updateDownloader.Download()

  If downloadResult.ResultCode <> 2 Then

    WScript.Echo "Download failed with result code", downloadResult.ResultCode
    WScript.Echo

    WScript.Quit 1

  End If

  WScript.Echo "Download complete.  Installing updates ..."
  WScript.Echo

  updateInstaller.Updates = updateList

  Set installationResult = updateInstaller.Install()

  If installationResult.ResultCode <> 2 Then

    WScript.Echo "Installation failed with result code", installationResult.ResultCode

    For I = 0 to updateList.Count - 1

      Set updateInstallationResult = installationResult.GetUpdateResult(I)
      WScript.Echo "Result for " & updateList.Item(I).Title & " is " & installationResult.GetUpdateResult(I).ResultCode

    Next

    WScript.Quit 1

  End If

  If installationResult.RebootRequired Then

    WScript.Echo "The system must be rebooted to complete installation."

    WScript.Quit 3

  End If

  WScript.Echo "Installation complete."

Loop 

これは、次のようにコマンドラインから実行します。

cscript wsusupdate.vbs

私のスクリプトは最小限の機能しかありませんが、それでも役に立つかもしれません。他にも多くの追加機能を備えたこのようなスクリプトがあります。Google検索をお試しください。


これを試してみます!一方、誰もがこのスクリプトの経験がありますか?
ランスベインズ

このスクリプトはで終了し<59, 3> <null>: 0x80240044ます。これが失敗する理由は何ですか?これが参照するメソッドを調べてみましたが、何が起こっているのかわかりませんでした。私を正しい方向に向けることができますか?
daviesgeek

@daviesgeek:0x80240044はWU_E_PER_MACHINE_UPDATE_ACCESS_DENIEDです。つまり、昇格された権限でスクリプトを実行する必要があります。
ハリージョンストン14年

ああ...ありがとう。コマンドラインからアクセス許可を昇格するにはどうすればよいですか?(申し訳ありませんが、私はLinuxの第一人者であり、Windowsの人ではありません...)
daviesgeek 14年

1
Vista / Win7:[スタート]メニューを開き、cmdと入力して、ENTERだけでなくcontrol-shift-ENTERを押します。Windows 8では、Windows-Xショートカットキーは管理コマンドラインを含むメニューを表示すると思います。または、どちらのシステムでも、エクスプローラでcmd.exeを見つけて右クリックし、[管理者として実行]を選択できます。
ハリージョンストン14年

41

Windows Updateの通常の使用方法を超えて、コマンドラインからチェックを強制することができます。

管理者のコマンドプロンプトを開き、次を実行します。

C:\> %windir%\system32\wuauclt.exe /detectnow

Wuauclt.exeは、Windows UpdateのAutoUpdateクライアントであり、Microsoft Updateから(MS Windowsプラットフォームのさまざまなバージョンの)利用可能な更新を確認するために使用されます。

これはインストールを強制しません。


1
ただ、追加する:このXP、Vistaと7の両方の作品だけでなく
カナダのルークREINSTATE MONICA

@Luke Windows 2000 SP4でも機能します。:)
Ƭᴇcʜιᴇ007

1
ただし、新規インストールの場合は、GUI(Windows Vista +の場合)またはWindows Update Webiste(Pre-Vista)を使用して更新を確認することをお勧めします。これにより、ダウンロードプロセスの優先度が高くなると思います。既定では、BITSはネットワーク接続がビジーでない場合にのみ更新をダウンロードします。
billc.cn

2
簡略版はWindowsキー+ Rで、wuauclt / detectnowと入力してEnterキーを押します。
スティーブラスボーン

5

更新を確認するには、[コントロールパネル]、[セキュリティ]、[Windows Update]に移動し、[更新の確認]をクリックします。

ここに画像の説明を入力してください


そしてwinXPで?:)
ランスベインズ

Windows XPでは、スタート->すべてのプログラム->(Windows | Microsoft)更新を押して、自動または手動検索を実行します。
イェンスエラ

1
これはWinXPのためではない
CAのM.

2

更新の真の再スキャンを強制する別の方法は、%windir%\ Windows \ SoftwareDistribution \ Downloadに保存されているすべての更新を削除することにより、スレートを完全に消去することです。

    NET STOP wuauserv
    RD /S /Q %windir%\SoftwareDistribution\Download
    NET START wuauserv

次に、Windows Updateに移動し、「更新プログラムの確認」。システムボリューム上の更新可能なすべてのファイルがチェックされるため、1時間かかる場合があります(その後の「更新のチェック」は高速になります)。このアプローチにより、少なくともMSが認識している限り、エラーや不具合のある更新が排除され、クリーンで最新のシステムが得られます。


ありがとう、素晴らしい答えです!私は他の答えよりも強力な何かを探していました。私のWindows 10のインストールは何らかの形で失敗し、アップデートはもう来ないようです。更新を強制する必要があります。これが機能することを願っています。
AzP

1

私は、新しいWindowsインストールを更新するためにwuinstallと呼ばれるセカンドパーティツールを使用しています。これにより、自動再起動を含む更新プロセス全体を自動化できます。これは、ユーザーの出席なしに最新のウィンドウを最新の状態にする最も速い方法の1つだと思います。


0

Windows 7での新規インストールの一環として、IEをアップグレードした場合、またはIEをまだ実行しておらず、最初の質問に答えた場合、Windows Updateでエラーが発生することがわかりました。また、GUIを使用せずにWindows UpdateをMicrosoft Updateに切り替える方法を見つけていないため、IEを手動で起動し、初期化してから、GUIを介してWindows Updateをセットアップするため、Microsoft Updateに切り替えて、初期エラー。あなたのマイレージは異なる場合があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.