Як змусити 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, тобто вам потрібно запустити скрипт із підвищеними дозволами.
Гаррі Джонстон

Ах ... дякую. Як я можу підвищити дозволи з командного рядка? (вибачте, я гуру Linux, а не людина Windows ...)
daviesgeek

1
Vista / Win7: Відкрийте меню «Пуск», наберіть cmd і натисніть клавішу управління-shift-ENTER замість просто ENTER. У Windows 8 я думаю, що клавіша швидкого доступу Windows-X відкриває меню, що включає в себе адміністративний командний рядок. Або в будь-якій системі ви можете знайти cmd.exe через Explorer, клацніть правою кнопкою миші та виберіть Запустити як адміністратор.
Гаррі Джонстон,

41

Крім звичайного способу використання Windows Update, ви можете змусити перевірити командний рядок.

Відкрийте командний рядок адміністратора та запустіть:

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

Wuauclt.exe є клієнтом AutoUpdate для оновлення Windows і використовується для перевірки наявних оновлень (для різних версій платформи MS Windows) від Microsoft Update.

Це не примусить встановити.


1
Додамо лише: це працює як на XP, Vista, так і на 7
Канадський Лука REINSTATE MONICA

@Luke Також працює для Windows 2000 SP4. :)
Ƭᴇcʜιᴇ007

1
Однак для нового встановлення краще перевірити наявність оновлень через графічний інтерфейс (для Windows Vista +) або веб-систему оновлення Windows (Pre-Vista). Я думаю, що це надасть процесу завантаження більш високий пріоритет. За замовчуванням BITS завантажує оновлення лише тоді, коли мережеве з'єднання не зайняте.
billc.cn

2
Скорочена версія - це клавіша Windows + R, а потім введіть wuauclt / detectnow і натисніть клавішу Enter.
Стів Ретбон

5

Щоб перевірити наявність оновлень, перейдіть до Панелі управління, Безпеки, Оновлення Windows, а потім натисніть «Перевірити наявність оновлень».

введіть тут опис зображення


а на winXP? :)
LanceBaynes

У Windows XP натисніть кнопку Пуск-> Усі програми -> (Windows | Microsoft) Оновіть та виконайте автоматичний або ручний пошук.
Єнс Ерат

1
Це не для winXP
M. of CA

2

Ще один спосіб примусити справжню перевірку до оновлень - витерти шифер чистим, видаливши всі оновлення, що зберігаються у % windir% \ Windows \ SoftwareDistribution \ Завантажити :

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

Потім перейдіть до оновлення Windows та "Перевірити наявність оновлень". Це може зайняти годину, тому що кожен оновлений файл на вашій системі перевіряється (наступні "Перевірки на оновлення" будуть швидкими). Такий підхід усуває помилки, виправляє оновлення та дає чисту, сучасну систему, принаймні настільки, наскільки MS це бачить.


Дякую, чудова відповідь! Я шукав щось більш сильне, ніж інші відповіді. Моя установка Windows 10 якимось чином не відповідає, і оновлення, схоже, більше не надходять. Мені потрібно змусити її оновитись, сподіваюся, що це працює.
AzP

1

Я використовую інструмент другої сторони під назвою wuinstall для оновлення встановлення нових вікон. за допомогою цього ви можете автоматизувати весь процес оновлення, включаючи автоматичні перезавантаження. Я думаю, що це один з найшвидших способів отримати свіжі вікна актуальними без відвідування користувачів.


0

Я виявив, що якщо в рамках вашої нової інсталяції на Windows 7 ви оновили IE або ще не запустили IE і відповіли на вступні питання, то оновлення Windows дасть вам помилку. Я також не знайшов способу переключити оновлення Windows на оновлення Microsoft, не проходячи графічний інтерфейс, тому я вручну запускаю IE, ініціалізую його, а потім налаштовую оновлення Windows через графічний інтерфейс, щоб я міг перейти на оновлення Microsoft і уникати початкова помилка. Ваш пробіг може відрізнятися.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.