78

Часто бывает так, что мне приходится смотреть этот экран в течение нескольких минут:

Я понятия не имею, что происходит сзади. И мне также не интересно наблюдать за изменениями в WindowsUpdate.log .

Я хотел бы знать, есть ли способ, который дает больше отзывов. Желательно что-то, что я могу вызвать из командной строки (например, apt-get).

8 ответов8

69

Вы можете запустить Центр обновления Windows из командной строки, используя утилиту wuauclt.exe, которая находится в папке% windir%\system32\.

Чтобы проверить наличие обновлений,

wuauclt.exe /detectnow

Чтобы проверить и обновить,

wuauclt.exe /detectnow /updatenow

Это не будет работать, если вы установили "Никогда не проверять наличие обновлений" в настройках Центра обновления Windows. Также, вероятно, автоматические обновления должны быть включены для переключения /updatenow (установите обновления).

В версиях Windows до Windows 10 вы также можете запустить графический интерфейс для Центра обновления Windows, введя следующую команду (находится в папке% windir%\system32\):

wuapp.exe

Это только открывает приложение обновлений и проверяет доступные обновления, но не устанавливает их. Также, если вы установили "Никогда не проверять наличие обновлений" в настройках Центра обновления Windows, это также не проверяет наличие обновлений, вам придется нажать кнопку "Проверить наличие обновлений".

53

В Windows 10 вы можете использовать модуль PowerShell PSWindowsUpdate .

> Install-Module PSWindowsUpdate
> Get-WindowsUpdate
> Install-WindowsUpdate

33

Я нашел несколько замечательных советов, когда изучал, как установить обновления Windows на Windows Server 2008 R2 Core.

Одно предложение, которое мне действительно понравилось, - это скрипт WUA_SearchDownloadInstall.vbs .

Доступные обновления в списке

Обновить установку

11

Вы можете использовать wusa.exe который является частью Windows 7.

Я хотел удалить значок обновления Windows 10 с панели задач, поэтому я написал этот скрипт AutoHotkey, который вызывает wusa.

wusa := "c:\windows\system32\wusa.exe"
runwait %wusa%  /uninstall /kb:2952664 /norestart
runwait %wusa%  /uninstall /kb:3021917    /norestart
runwait, %wusa%  /uninstall /kb:3035583 /norestart
msgbox, okay, all done!`rDon't forget to -hide- the updates now.

Таким образом, вы можете использовать wusa.exe для управления обновлениями Windows и установки .msu файлов.

Вот параметры командной строки для wusa: https://support.microsoft.com/en-us/kb/262841

wusa.exe /uninstall /kb:123456 /quiet /norestart
wusa.exe Windows6.1-KB123456-x86.msu /quiet /norestart

На этой странице есть коллекция других способов управления обновлениями из командной строки.

На этой странице объясняется, как работает wusa.exe.

Чтобы увидеть, какие обновления установлены (через командную строку):

systeminfo | find ": KB"
9

Я использую WuInstall. Это инструмент командной строки для управления обновлениями Windows. У вас есть много отличных опций, таких как отображение хода установки, указание, хотите ли вы перезагрузить компьютер и когда, и файлы журналов доступны для каждого процесса. С уважением

3

Windows 10 и Windows Server 2016 или более поздней версии используют USOClient.exe для сканирования, загрузки и установки обновлений.

  • StartScan используется для запуска сканирования
  • StartDownload Используется для запуска загрузки патчей
  • StartInstall Используется для установки загруженных патчей
  • RefreshSettings Обновить настройки, если были внесены какие-либо изменения
  • StartInteractiveScan Может запрашивать ввод данных пользователем и / или открывать диалоги для отображения прогресса или сообщения об ошибках.
  • RestartDevice Перезагрузите устройство, чтобы завершить установку обновлений
  • ScanInstallWait Комбинированное сканирование Скачать Установить
  • ResumeUpdate Возобновить Обновление Установка при загрузке

Эквивалент командной строки wuauclt в Windows 10 / Windows Server 2016

1

Основываясь на ответе от kizzx2, я создал два однострочника для командной строки.

Запустите следующий код из командной строки с повышенными правами.

Установка модуля обновления:

Powershell.exe -ExecutionPolicy Unrestricted -command "Install-Module PSWindowsUpdate -force"

Выполнение обновления из командной строки:

Powershell.exe -ExecutionPolicy Unrestricted -command "Import-Module PSWindowsUpdate; Get-WindowsUpdate; Install-WindowsUpdate"

Кроме того, вы можете добавить опции -AcceptAll и -AutoReboot в команду Install-WindowsUpdate .

0

Самый простой и надежный способ, который я нашел, это вызвать COM-объект из PowerShell.

$autoUpdate = New-Object -ComObject Microsoft.Update.AutoUpdate
$autoUpdate.DetectNow()

Другие методы объекта, похоже, ничего не делают в Windows 10. Смотрите также:
https://docs.microsoft.com/en-us/windows/desktop/api/wuapi/nn-wuapi-iautomaticupdates

Если вы не хотите использовать PowerShell, вы можете запустить

C:\Windows\System32\UsoClient.exe StartScan

прямо из командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .