- Как обновить Windows 10 с другого ПК в локальной сети или интернете
- Как обмениваться обновлениями между компьютерами Windows 10 в локальной сети
- Как проверить, работает ли Оптимизация доставки в Windows 10
- Модуль PSWindowsUpdate: управление обновлениями Windows из PowerShell
- Установка модуля управления обновлениями PSWindowsUpdate
- Обзор команд модуля PSWindowsUpdate
- Управление обновлениями Windows на удаленных компьютерах через PowerShell
- Получаем список доступных обновлений Windows из PowerShell
- Install-WindowsUpdate: установка обновлений с помощью PSWindowsUpdate
- Get-WUHistory: просмотр истории установленных обновлений Windows
- Remove-WindowsUpdate: Удаление обновлений
- Hide-WindowsUpdate: как скрыть ненужные обновления с помощью PowerShell
Как обновить Windows 10 с другого ПК в локальной сети или интернете
Традиционно обновления Windows 10 загружаются с серверов Microsoft на ваш компьютер. Хотя это наиболее безопасный способ получения файлов обновлений без изменений, это не самый быстрый способ доставки, который вы можете использовать. Он также не поддерживает пропускную способность и может быть проблематичным для людей с ограниченными интернет-соединениями. С помощью функции под названием «Оптимизация доставки» можно настроить Windows 10 для загрузки обновлений, а также обновлений для приложений Microsoft Store, с других компьютеров в локальной сети или в Интернете. Вот как.
Как обмениваться обновлениями между компьютерами Windows 10 в локальной сети
Чтобы настроить Windows 10 на получение обновлений из нескольких источников, запустите приложение «Настройки» (нажмите Windows + I на клавиатуре). В приложении «Настройки» перейдите в раздел «Обновление и безопасность».
В левом столбце выберите Оптимизация доставки. Эта функция может быть отключена на вашем компьютере. Чтобы включить его, установите для параметра «Разрешить загрузку с другого компьютера» значение «Вкл».
Вы получаете доступ к параметрам загрузки обновлений Windows 10 из Интернета и локальной сети. Выберите между:
- «ПК в моей локальной сети»
- «ПК в моей локальной сети и ПК в интернете»
Когда вы включаете эти параметры, ваш компьютер может отправлять части ранее загруженных обновлений и приложений Windows на ПК в локальной сети или в Интернете. Ваш компьютер не будет загружать контент на другие ПК в Интернете, когда вы находитесь в ограниченной сети.
Чтобы это работало и приносило значимые результаты, его необходимо включить на всех компьютерах или, по крайней мере, на нескольких компьютерах в сети или в Интернете. Когда вы находитесь в локальной сети с несколькими компьютерами Windows 10, повторите эту процедуру на всех из них. Кроме того, чтобы оптимизация доставки работала правильно, сеть, в которой находятся компьютеры Windows, должна быть настроена как частная, а не общедоступная.
Когда оптимизация доставки включена, обновления Windows 10 обмениваются между компьютерами и устройствами, использующими одноранговые соединения. Ваши ПК или устройства с Windows 10 теперь получают обновления не только с серверов Microsoft, но и с других компьютеров, будь то в локальной сети или подключенных к Интернету, в зависимости от того, как вы настроили Оптимизацию доставки.
Как проверить, работает ли Оптимизация доставки в Windows 10
Вам нужно подождать несколько дней, пока Delivery Optimization выполнит свою работу и обеспечит улучшение количества обновлений Windows 10, загружаемых с Microsoft или других компьютеров.
После выполнения настроек, которые мы вам показывали ранее, подождите около недели и вернитесь в «Настройки → Обновление и безопасность → Оптимизация доставки». Затем нажмите на монитор активности.
Теперь вы видите статистику по загрузкам и загрузкам, выполненным Windows 10 Update с оптимизацией доставки. Один из наших компьютеров в локальной сети часто подключен к сети. Поэтому, когда мы смотрим на статистику загрузки для него, мы видим, что 100% его обновлений для Windows 10 загружаются из Microsoft. Тем не менее, мы также видим в статистике выгрузки, что она загружала обновления на другие компьютеры в сети, которые в сети меньше.
На другом ПК с Windows 10 из той же сети у нас была потрясающая статистика загрузки, показывающая, что оптимизация доставки работает хорошо, и ей удалось загрузить почти половину обновлений Windows 10 с других компьютеров, как из локальной сети, так и из Интернета.
Вы установили Windows 10 для загрузки обновлений из локальной сети или интернета?
Как видите, настройка устройства Windows 10 для получения обновлений из нескольких источников не так уж сложна. У этого подхода есть свои преимущества: требуется более быстрая загрузка обновлений для Windows 10 и меньшая пропускная способность интернета, поскольку некоторые обновления загружаются из локальной сети, а также с других компьютеров, на которых эти обновления уже есть. Прежде чем закрыть это руководство, расскажите, как вы настроили функцию оптимизации доставки в Windows 10: хотите ли вы загружать обновления только с других компьютеров в локальной сети или из Интернета? Комментарий ниже и давайте обсудим.
Модуль PSWindowsUpdate: управление обновлениями Windows из PowerShell
Для управления обновлениями Windows из командной строки очень удобно использовать специальный PowerShell модуль – PSWindowsUpdate. Модуль PSWindowsUpdate не встроен в Windows и является сторонним модулем, доступным в галерее скриптов Technet. PSWindowsUpdate позволяет администраторам удаленно проверять, устанавливать, удалять и скрывать определенные обновления на компьютерах и рабочих станциях. Модуль PSWindowsUpdate особо ценен при использовании для управления обновлениями в Core редакциях Windows Server, в которых отсутствуют графический интерфейс, а также при настройке образа Windows в режиме аудита.
Установка модуля управления обновлениями PSWindowsUpdate
Если вы используете Windows 10, вы можете установить модуль PSWindowsUpdate из онлайн репозитория через менеджер пакетов PackageManagement всего одной командой:
Install-Module -Name PSWindowsUpdate
В моем случае появилось предупреждение, что версия PSWindowsUpdate 1.5.2.6 уже установлена. Чтобы установить более новую версию, нужно запустить команду:
Install-Module -Name PSWindowsUpdate –Force
После окончания установки нужно проверить наличие пакета:
Get-Package -Name PSWindowsUpdate
Если у вас установлена более старая версия Windows (Windows 7/8.1/ Windows Server 2008 R2/ 2012 R2) или отсутствует прямой доступ в Интернет, вы можете установить модуль PSWindowsUpdate вручную.
Модуль PSWindowsUpdate можно установить на любые поддерживаемые версии Windows, начиная с Vista / Windows Server 2008 с установленным PowerShell 2.0 (но рекомендуется PowerShell версии 3.0 и выше).
После установки модуля PSWindowsUpdate на своем компьютере вы можете удаленно установить его на другие компьютеры или сервера с помощью командлета Update-WUModule . Например, чтобы скопировать PSWindowsUpdate модуль с вашего компьютера на два удаленных сервера, выполните команды (нужен доступ к удаленным серверам по протоколу SMB, порт TCP 445):
$Targets = «Server1», «Server2»
Update-WUModule -ComputerName $Targets –Local
Чтобы сохранить модуль в сетевой каталог для дальнейшего импорта модуля на других компьютерах, выполните:
Save-Module -Name PSWindowsUpdate –Path \\fs01\ps\
Обзор команд модуля PSWindowsUpdate
Список доступных командлетов модуля можно вывести так:
get-command -module PSWindowsUpdate
Вкратце опишем назначение команд модуля:
- Clear-WUJob – использовать Get-WUJob для вызова задания WUJob в планировщике;
- Download-WindowsUpdate (алиас для Get-WindowsUpdate –Download) — получить список обновлений и скачать их;
- Get-WUInstall, Install-WindowsUpdate (алиас для Get-WindowsUpdate –Install) – установить обвновления;
- Hide-WindowsUpdate (алиас для Get-WindowsUpdate -Hide:$false) – скрыть обновление;
- Uninstall-WindowsUpdate -удалить обновление с помощью Use Remove-WindowsUpdate;
- Add-WUServiceManager – регистрация сервера обновления (Windows Update Service Manager) на компьютере;
- Enable-WURemoting — включить правила файервола, разрешающие удаленное использование командлета PSWindowsUpdate;
- Get-WindowsUpdate (Get-WUList) — выводит список обновлений, соответствующим указанным критериям, позволяет найти и установить нужное обновление. Это основной командлет модуля PSWindowsUpdate. Позволяет скачать и установить обновления с сервера WSUS или Microsoft Update. Позволяет выбрать категории обновлений, конкретные обновления и указать правила перезагрузки компьютера при установке обновлений;
- Get-WUApiVersion – получить версию агента Windows Update Agent на компьютере;
- Get-WUHistory – вывести список установленных обновлений (история обновлений);
- Get-WUInstallerStatus — проверка состояния службы Windows Installer;
- Get-WUJob – запуска заданий обновления WUJob в Task Scheduler;
- Get-WULastResults — даты последнего поиска и установки обновлений (LastSearchSuccessDate и LastInstallationSuccessDate);
- Get-WURebootStatus — позволяет проверить, нужна ли перезагрузка для применения конкретного обновления;
- Get-WUServiceManager – вывод источников обновлений;
- Get-WUSettings – получить настройки клиента Windows Update;
- Invoke-WUJob – удаленное вызов заданий WUJobs в Task Schduler для немедленного выполнения заданий PSWindowsUpdate.
- Remove-WindowsUpdate – удалить обновление;
- Remove-WUServiceManager – отключить Windows Update Service Manager;
- Set-PSWUSettings – сохранить настройки модуля PSWindowsUpdate в XML файл;
- Set-WUSettings – настройка параметров клиента Windows Update;
- Update-WUModule – обновить модуль PSWindowsUpdate (можно обновить модуль на удаленном компьютере, скопировав его с текущего, или обновить из PSGallery).
Управление обновлениями Windows на удаленных компьютерах через PowerShell
Практически все командлеты модуля PSWindowsUpdate позволяют управлять установкой обновлений на удаленных компьютерах. Для этого используется атрибут -Computername Host1, Host2, Host3.
Чтобы управлять обновлениями на удаленных компьютерах, нужно добавить их имена в список доверенных хостов winrm:
Установите модуль PSWindowsUpdate на удаленных компьютерах и разрешите в файерволе доступ по динамическим RPC портам к процессу dllhost.exe.
Получаем список доступных обновлений Windows из PowerShell
Вывести список обновлений, доступных для данного компьютера на сервере обновлений можно с помощью команд Get-WindowsUpdate или Get-WUList.
Чтобы проверить список доступных обновлений на удаленном компьютере, выполните:
Get-WUList –ComputerName server2
Вы можете проверить, откуда должна получать обновления ваша ОС Windows. Выполните команду:
Как вы видите, компьютер настроен на получение обновлений с локального сервера WSUS (Windows Server Update Service = True). В этом случае вы должны увидесть список обновлений, одобренных для вашего компьютера на WSUS.
Если вы хотите просканировать ваш компьютер на серверах Microsoft Update (кроме обновлений Windows на этих серверах содержатся обновления Office и других продуктов) в Интернете, выполните команду:
Вы получаете предупреждение:
Чтобы разрешить сканирование на Microsoft Update, выполните команду:
Add-WUServiceManager -ServiceID «7971f918-a847-4430-9279-4a52d1efe18d» -AddServiceFlag 7
Теперь можете выполнить сканирование на Microsoft Update. Как вы видите, в данном случае были найдены дополнительные обновления для Microsoft Visual C++ 2008 и Microsoft Silverlight.
Чтобы проверить версию агента Windows Update на компьютере, выполните команду:
Чтобы убрать определенные продукты или конкретные пакеты из списка обновлений, которые получает ваш компьютер, вы их можете исключить по:
- Категории (-NotCategory);
- Названию (-NotTitle);
- Номеру обновления (-NotKBArticleID).
Например, исключим из списка обновления драйверов, OneDrive и одну конкретную KB:
Get-WUlist -NotCategory «Drivers» -NotTitle OneDrive -NotKBArticleID KB4533002
Install-WindowsUpdate: установка обновлений с помощью PSWindowsUpdate
Чтобы автоматически загрузить и установить все доступные обновления для вашей Windows, выполните:
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
Ключ AcceptAll включает одобрение установки для всех пакетов, а AutoReboot разрешает автоматическую перезагрузку Windows после установки обновлений.
Можете сохранить историю установи обновлений в лог файл (можно использовать вместо WindowsUpdate.log).
Install-WindowsUpdate -AcceptAll -Install -AutoReboot | Out-File «c:\$(get-date -f yyyy-MM-dd)-WindowsUpdate.log» -force
Можно установить только конкретные обновления по номерам KB:
Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install
В данном случае нужно подтверждать установку каждого обновления вручную.
Если вы хотите исключить некоторые обновления из списка на установку, выполните:
Install-WindowsUpdate -NotCategory «Drivers» -NotTitle OneDrive -NotKBArticleID KB4011670 -AcceptAll -IgnoreReboot
Модуль позволяет удаленно запустить установку обновлений сразу на нескольких компьютерах или серверах (на компьютерах должен присутствовать модуль PSWindowsUpdate). Это особенно удобно, так как позволяет администратору не заходить вручную на все сервера во время плановой установки обновлений. Следующая команда установит все доступные обновление на трех удаленных серверах:
В модуле PSWindowsUpdate 2.1 вместо командлета Invoke-WUInstall нужно использовать Invoke-WUJob. Этот командлет создает на удаленном компьютере задание планировщика, запускаемое от SYSTEM.
Поэтому в новых версиях модуля для удаленной установки обновлений используйте такую команду:
Можно установить обновления на удаленном компьютере и отправить email отчет администратору:
Install-WindowsUpdate -ComputerName server1 -MicrosoftUpdate -AcceptAll — IgnoreReboot -SendReport –PSWUSettings @
Get-WUHistory: просмотр истории установленных обновлений Windows
С помощью команды Get-WUHistory вы можете получить список обновлений, установленных на компьютере ранее автоматически или вручную.
Можно получить информацию о дате установки конкретного обновления:
Get-WUHistory| Where-Object <$_.Title -match "KB4517389">| Select-Object *|ft
Чтобы получить информацию об наличии установленного обновления на нескольких удаленных компьютерах, можно воспользоваться таким кодом:
«server1″,»server2» | Get-WUHistory| Where-Object <$_.Title -match "KB4011634">| Select-Object *|ft
Remove-WindowsUpdate: Удаление обновлений
Для корректного удаления обновлений используется командлет Remove-WindowsUpdate. Вам достаточно указать номер KB в качестве аргумента параметра KBArticleID. Чтобы отложить автоматическую перезагрузку компьютера можно добавить ключ –NoRestart :
Remove-WindowsUpdate -KBArticleID KB4011634 -NoRestart
Hide-WindowsUpdate: как скрыть ненужные обновления с помощью PowerShell
Вы можете скрыть определенные обновления, чтобы они никогда не устанавливались службой обновлений Windows Update на вашем компьютер (чаще всего скрывают обновления драйверов). Например, чтобы скрыть обновления KB2538243 и KB4524570, выполните такие команды:
$HideList = «KB2538243», «KB4524570»
Get-WindowsUpdate -KBArticleID $HideList -Hide
или используйте alias:
Hide-WindowsUpdate -KBArticleID $HideList -Verbose
Теперь при следующем сканировании обновлений с помощью команды Get-WUlist скрытые обновления не будут отображаться в списке доступных для установки патчей.
Вывести список обновлений, которые скрыты на данном компьютере можно так:
Обратите внимание, что в колонке Status у скрытых обновлений появился атрибут H (Hidden).
Отменить скрытие некоторых обновлений можно так:
Get-WindowsUpdate -KBArticleID $HideList -WithHidden -Hide:$false
Show-WindowsUpdate -KBArticleID $HideList
Для тех, кто себя некомфортно чувствует в консоли PowerShell, для управления обновлениями Windows 10 могу порекомендовать графическую утилиту Windows Update MiniTool.