
Я видел несколько подобных вопросов, но все они либо устарели, либо предполагают наличие автономной сети или автономных серверов.
У нас есть большое количество удаленных офисов, большинство из которых не имеют собственных IT-магазинов. В каждом из этих офисов есть как минимум две, а возможно и много рабочих станций, которые не подключены ни к какой сети. Эти рабочие станции работают под управлением Windows 10 Enterprise. Ни одна из этих вещей не подлежит обсуждению.
Два-четыре раза в год мы готовим обновление для нашего приложения. Удаленные офисы получают это обновление через наш защищенный веб-портал, загружают его на флэш-накопитель и применяют это обновление на каждой рабочей станции. Я хотел бы использовать это как возможность также установить любые обновления безопасности или критические обновления для Windows с момента последнего обновления.
Пока что лучшим вариантом, который я видел, является WSUS Offline, но он не позволяет легко делать инкрементальные обновления, а без этого в конечном итоге размер загрузки станет необоснованным. Я не использовал WSUS или SCCM, но похоже, что у них нет возможности создать автономный установщик. Целевые рабочие станции очень заблокированы, поэтому в моем идеальном мире я бы хотел, чтобы результирующий исполняемый файл(ы) был подписан либо Microsoft, либо нами.
Есть ли другие варианты, которые мне следует рассмотреть? У нас нет проблем с оплатой корпоративного решения, если оно доступно. Прямо сейчас я серьезно подумываю взять исходный код из WSUS Offline и изменить его под свои нужды, но я бы предпочел не загружать свои ресурсы разработки.
решение1
С новой моделью исправлений все стало кумулятивным, и именно поэтому они такие большие. По сути, они стали ежемесячным пакетом обновления для каждого продукта. Поэтому в зависимости от того, какие продукты вы загрузили на эти машины, вам нужно только самое последнее обновление для: (#1) ОС, а затем той версии (#2) IE, (#3) .NET Framework и, возможно, (#4) Office, которая установлена.
Пример: если вы устанавливаете исправления 2 раза в год, скажем, в январе и июне, вам не нужно применять исправления из других 10 месяцев года, поскольку январь 2018 года заменяет все из 2017 года, а июнь 2018 года заменяет февраль-май 2018 года.
решение2
http://catalog.update.microsoft.com (Убедитесь, что вы получаете версию для правильной ОС и x86 или x64) Введите KB####### по одному и добавьте их в корзину. Когда будет предложено указать папку, перейдите в c:\updates.
Файл Wusa.exe находится в папке %windir%\System32. Автономный установщик Центра обновления Windows использует API агента Центра обновления Windows для установки пакетов обновлений.
for /R "C:\Updates\" %i in (*.msu) do wusa "%i" /quiet /norestart
Я бы предложил переименовать патчи, добавив 1,2,3 и т. д. в начало имени файла, чтобы они устанавливались в правильном порядке. Либо просто иметь кучу wsu в пакетном файле.
wusa "package1.msu" /quiet /norestart
wusa "package2.msu" /quiet /norestart
wusa "package3.msu" /quiet /norestart
...
Конечно, можно создать более интеллектуальный скрипт, который проверяет наличие обновлений и применяет только необходимые из них.
Единственная потенциальная проблема здесь в обновлениях, которые могут иметь обязательные перезагрузки, и ваш скрипт должен будет обрабатывать это условие. Также обновления могут не устанавливаться, что потребует дополнительной проверки ошибок.
Другой возможный ответ — полное создание образа. Вы можете использовать imagex от Microsoft для захвата окон в wim-файл. Затем создайте среду Windows PE на USB-накопителе с wim-файлом. Разверните wim-файл, перезагрузите компьютер и все готово.
Преимущество здесь в том, что вы знаете, что все исправления развернуты правильно. Компьютер будет в единой конфигурации.
Если конечному пользователю необходимо хранить файлы, я бы предложил разбить жесткий диск на разделы c: и d:, а затем сохранить все пользовательские файлы на D:, чтобы можно было при желании повторно создать образ диска C:.
Самый большой недостаток — размер, даже если вы тщательно очистите образ, он будет намного больше. Может быть, 16 или 32 ГБ, в зависимости от того, насколько велика ваша программа и насколько тщательно вы очищаете жесткий диск от нежелательных файлов.
решение3
- Загрузите последнюю версию cab-файла обновления
wsusscn2.cab
здесь:http://go.microsoft.com/fwlink/?linkid=74689 - Получите модуль PowerShell для управления обновлениями, загрузите вручную
.nupkg
https://www.powershellgallery.com/packages/PSWindowsUpdate/2.2.0.2 - Скопируйте эти два файла на USB-накопитель, который вы будете использовать для переноса обновлений на компьютер.
- Распакуйте его
.nupkg
в папку modules:C:\Program Files\WindowsPowerShell\Modules
так, чтобы окончательный путь выглядел так же, какC:\Program Files\WindowsPowerShell\Modules\PSWindowsUpdate
и содержимое nupkg в этой папке. - Импортируйте модуль:
Import-Module PSWindowsUpdate
- Добавьте cab-файл из шага 1 в качестве источника обновлений:
Add-WUOfflineSync -Path C:\wsusscan.cab
используя путь, по которому вы разместили cab-файл. - Получите
ServiceID
созданный на шаге 6 с помощью:Get-WUServiceManager
. Эта команда выводит список всех опций и их GUID. Тот, который вы ищете, будет иметь имяOffline Sync Service
- Установите обновления из этого нового источника, ссылаясь
ServiceID
на шаг 7, где я указал<GUID>
:
Install-WindowsUpdate -ServiceID <GUID> -AcceptAll -AutoReboot