Làm cách nào để buộc Windows kiểm tra các bản cập nhật?


25

Sau khi cài đặt Windows mới - XP hoặc 7 - làm cách nào tôi có thể "buộc" các bản cập nhật Windows?

Tôi không muốn có các bản cập nhật Windows "cũ" sau một tuần, vì vậy nó có thể được thực hiện trong "một bước" không? Có bất kỳ lệnh "ma thuật" nào buộc Windows phải kiểm tra các bản cập nhật không, và nếu có, hãy cài đặt chúng?

Câu trả lời:


12

Bạn có thể kiểm tra và cài đặt các bản cập nhật tự động bằng cách sử dụng tập lệnh. Điều này sẽ hoạt động trong cả XP hoặc Windows 7.

Có một số tập lệnh có sẵn để tải xuống, đây là của tôi :

' 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 

Bạn chạy cái này từ dòng lệnh như thế này:

cscript wsusupdate.vbs

Kịch bản của tôi chỉ có chức năng tối thiểu nhưng vẫn có thể hữu ích. Có các tập lệnh khác như vậy có sẵn với nhiều tính năng bổ sung, hãy thử tìm kiếm Google.


Tôi sẽ thử cái này! Trong khi đó có ai có bất kỳ kinh nghiệm với kịch bản này?
LanceBaynes

Kịch bản này thoát với <59, 3> <null>: 0x80240044. Bất cứ ý tưởng tại sao điều này thất bại? Tôi đã thử tìm kiếm các phương pháp mà tài liệu tham khảo này, nhưng tôi không thể hiểu chuyện gì đang xảy ra. Bạn có thể chỉ cho mình hướng chính xác được không?
daviesgeek

@daviesgeek: 0x80240044 là WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED , tức là bạn cần chạy tập lệnh với quyền nâng cao.
Harry Johnston

Ah cảm ơn bạn. Làm thế nào tôi có thể nâng cao quyền từ dòng lệnh? (xin lỗi, tôi là một chuyên gia về Linux, không phải là một người Windows ...)
daviesgeek

1
Vista / Win7: Mở Menu Bắt đầu, nhập cmd và nhấn control-shift-ENTER thay vì chỉ ENTER. Trên Windows 8 tôi nghĩ phím tắt Windows-X sẽ hiển thị một menu bao gồm một dòng lệnh quản trị. Hoặc trên một trong hai hệ thống, bạn có thể tìm thấy cmd.exe thông qua Explorer, nhấp chuột phải và chọn Run As Administrator.
Harry Johnston

41

Ngoài cách sử dụng Windows Update thông thường, bạn có thể buộc kiểm tra từ một dòng lệnh.

Mở một dấu nhắc lệnh quản trị viên và chạy:

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

Wuauclt.exe là Máy khách AutoUpdate của Windows Update và được sử dụng để kiểm tra các bản cập nhật có sẵn (đối với các phiên bản khác nhau của nền tảng MS Windows) từ Microsoft Update.

Điều này sẽ không bắt buộc cài đặt.


1
Chỉ cần thêm: điều này cũng hoạt động trên cả XP, Vista và 7
Luke Luke REINSTATE MONICA của Canada

@Luke Nó cũng hoạt động cho Windows 2000 SP4. :)
cʜιᴇ007

1
Tuy nhiên, để cài đặt mới, bạn nên kiểm tra các bản cập nhật thông qua GUI (cho Windows Vista +) hoặc Windows Update webiste (Pre-Vista). Tôi nghĩ rằng điều này sẽ cung cấp cho quá trình tải xuống ưu tiên cao hơn. Theo mặc định, BITS sẽ chỉ tải xuống bản cập nhật khi kết nối mạng không bận.
billc.cn

2
Một phiên bản tốc ký sẽ là Windows key + R, sau đó nhập wuauclt / Detnow và sau đó nhấn enter.
Steve Rathbone

5

Để kiểm tra các bản cập nhật, đi tới Bảng điều khiển, Bảo mật, Cập nhật Windows, sau đó bấm "Kiểm tra cập nhật".

nhập mô tả hình ảnh ở đây


và trên winXP? :)
LanceBaynes

Trong Windows XP, nhấn Bắt đầu-> Tất cả chương trình -> (Windows | Microsoft) Cập nhật và thực hiện tìm kiếm tự động hoặc thủ công.
Jens Erat

1
Đây không phải là dành cho winXP
M. của CA

2

Một cách khác để buộc quét lại các bản cập nhật thực sự là xóa sạch bảng, bằng cách xóa tất cả các bản cập nhật được lưu trữ trong % Windir% \ Windows \ SoftwareDistribution \ Download :

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

Sau đó, vào Windows Update và "Kiểm tra cập nhật". Có thể mất một giờ, vì mọi tệp có thể cập nhật trên khối lượng hệ thống của bạn đều được kiểm tra ("Kiểm tra cập nhật" tiếp theo sẽ nhanh chóng). Cách tiếp cận này giúp loại bỏ lỗi, cập nhật đã được khắc phục và mang lại một hệ thống cập nhật, sạch sẽ, ít nhất là trong chừng mực mà MS nhìn thấy.


Cảm ơn bạn, câu trả lời tuyệt vời! Tôi đã tìm kiếm một cái gì đó mạnh mẽ hơn các câu trả lời khác. Cài đặt Windows 10 của tôi bị hỏng theo một cách nào đó và các bản cập nhật dường như không còn nữa. Tôi cần buộc nó phải cập nhật, hy vọng điều này hoạt động.
AzP

1

Tôi đang sử dụng một công cụ của bên thứ hai được gọi là wuinstall để cập nhật cài đặt windows mới. với điều đó bạn có thể tự động hóa toàn bộ quá trình cập nhật, bao gồm cả khởi động lại tự động. Tôi nghĩ rằng đó là một trong những cách nhanh nhất để có được một cửa sổ mới cập nhật mà không cần người dùng tham dự.


0

Tôi đã thấy rằng, như là một phần của bản cài đặt mới trên Windows 7, bạn đã nâng cấp IE hoặc bạn chưa chạy IE và trả lời các câu hỏi giới thiệu, rằng Windows Update sẽ báo lỗi cho bạn. Tôi cũng chưa tìm được cách chuyển Windows Update sang Microsoft Update mà không cần thông qua GUI, vì vậy tôi tự khởi động IE, khởi chạy nó và sau đó thiết lập Windows Update thông qua GUI, vì vậy tôi có thể chuyển sang Microsoft Update và tránh lỗi ban đầu. Số dặm của bạn có thể thay đổi.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.