Поделиться через


Поиск, скачивание и установка определенных Обновления

В примере скриптов в этом разделе показано, как использовать агент Обновл. Windows (WUA) для сканирования, скачивания и установки определенного обновления. Обновление можно указать по его названию.

В примере выполняется поиск определенного обновления программного обеспечения, скачивание обновления и установка обновления. Например, пользователь может использовать этот метод, чтобы определить, установлено ли критическое обновление системы безопасности на компьютере. Если обновление не установлено, пользователь может убедиться, что обновление скачано и установлено. Пользователь также может убедиться, что они уведомляются о состоянии установки.

Пример обновления определяется заголовком обновления в свойстве заголовка IUpdate. Заголовок обновления, предлагаемого в этом примере, — "Обновление для клиента Windows Rights Management 1.0".

Примечание.

Сведения о том, как выполнять поиск, скачивание и установку всех обновлений, применяемых к конкретному приложению, см. в статье "Поиск, скачивание и установка Обновления".

 

Прежде чем пытаться запустить этот пример, обратите внимание на следующее:

  • НА компьютере необходимо установить WUA. Дополнительные сведения о том, как определить установленную версию WUA, см. в разделе "Определение текущей версии WUA".
  • Пример не предоставляет собственный пользовательский интерфейс. WUA предложит пользователю перезагрузить компьютер, если обновление требует перезагрузки.
  • Пример может скачать обновления только из WUA. Он не может скачать обновления с сервера служб обновления программного обеспечения (SUS) 1.0.
  • Для выполнения этого примера требуется узел скрипта Windows (WSH). Дополнительные сведения о WSH см. в разделе WSH пакета СРЕДСТВ разработки программного обеспечения платформы (SDK). Если пример копируется в файл с именем WUA_SpecificUpdate.vbs, его можно запустить, открыв окно командной строки и введя следующую команду: cscript WUA_SpecificUpdate.vbs

Примечание.

При выполнении проверок может возникнуть более высокий уровень использования памяти. Рекомендуется внести необходимые корректировки в систему, чтобы выделить достаточные ресурсы памяти для процесса сканирования. Это может включать настройку дополнительных процессоров и изменение файла страницы. Обеспечение достаточного выделения памяти поможет эффективно и эффективно выполнить сканирование.

Пример

Внимание

Этот скрипт предназначен для демонстрации использования API-интерфейсов агента Обновл. Windows и примера того, как разработчики могут использовать эти API для решения проблем. Этот скрипт не предназначен как рабочий код, и сам скрипт не поддерживается корпорацией Майкрософт (хотя поддерживаются базовые API агента Обновл. Windows).

 

Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"

'Get update title to search for
WScript.Echo "Enter the title of the update: " & _
"(for example, Update for Windows Rights Management client 1.0)"
updateTitle = WScript.StdIn.Readline

WScript.Echo vbCRLF & "Searching for: " & updateTitle & "..."

Set updateSearcher = updateSession.CreateupdateSearcher()

'Search for all software updates, already installed and not installed
Set searchResult = _
updateSearcher.Search("Type='Software'")

Set updateToInstall = CreateObject("Microsoft.Update.UpdateColl")

updateIsApplicable = False

'Cycle through search results to look for the update title
For i = 0 To searchResult.Updates.Count-1
   Set update = searchResult.Updates.Item(i)
   If UCase(update.Title) = UCase(updateTitle) Then
   'Update in list of applicable updates 
   'Determine if it is already installed or not
      If update.IsInstalled = False Then
         WScript.Echo vbCRLF & _
         "Result: Update applicable, not installed."
         updateIsApplicable = True
         updateToInstall.Add(update)
      Else 
         'Update is installed so notify user and quit
         WScript.Echo vbCRLF & _
         "Result: Update applicable, already installed."
         updateIsApplicable = True
         WScript.Quit 
      End If
   End If 
Next

If updateIsApplicable = False Then
   WScript.Echo "Result: Update is not applicable to this machine."
   WScript.Quit
End If

WScript.Echo vbCRLF & "Would you like to install now? (Y/N)"
stdInput = WScript.StdIn.Readline
 
If (strInput = "N" or strInput = "n") Then 
   WScript.Quit
ElseIf  (stdInput = "Y" OR stdInput = "y") Then
   'Download update
   Set downloader = updateSession.CreateUpdateDownloader() 
   downloader.Updates = updateToInstall
   WScript.Echo vbCRLF & "Downloading..."
   Set downloadResult = downloader.Download()
   WScript.Echo "Download Result: " & downloadResult.ResultCode
  
   'Install Update
   Set installer = updateSession.CreateUpdateInstaller()
   WScript.Echo vbCRLF & "Installing..."
   installer.Updates = updateToInstall
   Set installationResult = installer.Install()
  
   'Output the result of the installation
   WScript.Echo "Installation Result: " & _
   installationResult.ResultCode
   WScript.Echo "Reboot Required: " & _
   installationResult.RebootRequired 
End If