ฉันจะบังคับให้ Windows ตรวจสอบการอัปเดตได้อย่างไร


25

หลังจากติดตั้ง Windows ใหม่ - XP หรือ 7 - ฉันจะ "บังคับ" การอัปเดต Windows ได้อย่างไร

ฉันไม่ต้องการมีการอัปเดต Windows "เก่า" หลังจากผ่านไปหนึ่งสัปดาห์จึงสามารถทำได้ใน "ขั้นตอนเดียว" หรือไม่? มีคำสั่ง "เวทมนต์" ที่บังคับให้ 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


ฉันจะลองอันนี้! ในขณะเดียวกันไม่มีใครมีประสบการณ์กับสคริปต์นี้บ้าง
LanceBaynes

<59, 3> <null>: 0x80240044สคริปต์นี้ออกด้วย ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงล้มเหลว ฉันได้ลองค้นหาวิธีการที่อ้างอิงนี้ แต่ฉันไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้น คุณช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม?
daviesgeek

@daviesgeek: 0x80240044 คือWU_E_PER_MACHINE_UPDATE_ACCESS_DENIEDนั่นคือคุณจะต้องเรียกใช้สคริปต์ด้วยสิทธิ์ระดับสูง
แฮร์รี่จอห์นสตัน

อ่า ... ขอบคุณ ฉันจะยกระดับสิทธิ์จากบรรทัดคำสั่งได้อย่างไร (ขออภัยฉันเป็นกูรูลินุกซ์ไม่ใช่คนที่เป็น Windows ... )
daviesgeek

1
Vista / Win7: เปิดเมนูเริ่มพิมพ์ cmd แล้วกด control-shift-ENTER แทนเพียงแค่ป้อน ใน Windows 8 ฉันคิดว่าปุ่มทางลัดของ Windows-X จะปรากฏเมนูที่มีบรรทัดคำสั่งของผู้ดูแลระบบ หรือในทั้งสองระบบคุณสามารถค้นหา cmd.exe ผ่าน Explorer คลิกขวาแล้วเลือก Run As Administrator
Harry Johnston

41

นอกเหนือจากวิธีปกติในการใช้ Windows Update คุณสามารถบังคับให้มีการตรวจสอบจากบรรทัดคำสั่ง

เปิดพรอมต์คำสั่งของผู้ดูแลระบบและเรียกใช้:

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

Wuauclt.exe เป็นไคลเอนต์ AutoUpdate ของ Windows Update และใช้เพื่อตรวจสอบการอัปเดตที่มีอยู่ (สำหรับแพลตฟอร์ม MS Windows รุ่นต่างๆ) จาก Microsoft Update

สิ่งนี้จะไม่บังคับให้ติดตั้ง


1
เพียงแค่เพิ่ม: นี้ทำงานได้ทั้ง XP, Vista และ 7 เช่นกัน
Canadian Luke ติดตั้ง 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
Steve Rathbone

5

หากต้องการตรวจสอบการอัปเดตให้ไปที่แผงควบคุมความปลอดภัย Windows Update จากนั้นคลิก "ตรวจสอบการอัปเดต"

ป้อนคำอธิบายรูปภาพที่นี่


และบน winXP :)
LanceBaynes

ใน Windows XP กด Start-> All Programs -> (Windows | Microsoft) อัปเดตและทำการค้นหาอัตโนมัติหรือด้วยตนเอง
Jens Erat

1
นี่ไม่ใช่สำหรับ winXP
M. of CA

2

อีกวิธีหนึ่งในการบังคับให้สแกนซ้ำจริงสำหรับการอัปเดตคือการล้างข้อมูลกระดานชนวนโดยการลบการปรับปรุงทั้งหมดที่เก็บไว้ใน% windir% \ Windows \ SoftwareDistribution \ Download :

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

จากนั้นไปที่ Windows Update และ "ตรวจสอบการอัปเดต" อาจใช้เวลาหนึ่งชั่วโมงเนื่องจากทุกไฟล์ที่อัปเดตได้ในไดรฟ์ข้อมูลระบบของคุณได้รับการตรวจสอบแล้ว ("การตรวจสอบการอัพเดต" ในภายหลังจะเร็ว) วิธีการนี้จะกำจัดข้อผิดพลาดอัพเดตที่อัพเดตเรียบร้อยแล้วและให้ระบบที่สะอาดและทันสมัยอยู่เสมออย่างน้อยที่สุดเท่าที่ MS เห็น


ขอบคุณคำตอบที่ดี! ฉันกำลังค้นหาบางสิ่งที่มีพลังมากกว่าคำตอบอื่น ๆ การติดตั้ง Windows 10 ของฉันไม่สามารถทำได้ในทางใดทางหนึ่งและการปรับปรุงไม่น่าจะเกิดขึ้นอีกแล้ว ฉันต้องการบังคับให้อัปเดตหวังว่าจะได้ผล
AzP

1

ฉันใช้เครื่องมือของบุคคลที่สองชื่อwuinstallเพื่ออัปเดตการติดตั้ง windows ใหม่ เมื่อคุณสามารถทำให้กระบวนการอัปเดตทั้งหมดรวมถึงการรีบูตอัตโนมัติโดยอัตโนมัติ ฉันคิดว่ามันเป็นหนึ่งในวิธีที่เร็วที่สุดในการรับหน้าต่างใหม่ล่าสุดโดยไม่ต้องเข้าร่วมของผู้ใช้


0

ฉันพบว่าหากเป็นส่วนหนึ่งของการติดตั้งใหม่บน Windows 7 คุณได้อัปเกรด IE หรือคุณยังไม่ได้รัน IE และตอบคำถามเบื้องต้น Windows Update จะให้ข้อผิดพลาดแก่คุณ ฉันยังไม่พบวิธีเปลี่ยน Windows Update เป็น Microsoft Update โดยไม่ต้องผ่าน GUI ดังนั้นฉันจึงติดไฟ IE ด้วยตนเองรับค่าเริ่มต้นแล้วติดตั้ง Windows Update ผ่าน GUI ดังนั้นฉันจึงสามารถสลับไปใช้ Microsoft Update และหลีกเลี่ยง ข้อผิดพลาดเริ่มต้น ไมล์สะสมของคุณอาจแตกต่างกันไป


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.