Этот пост для модных и четких пасанов, которые идут в ногу со временем и катят свежие релизы, у кого SA на винду и вообще хотят быть в тренде. ;))
Ладно, а если серьезно, Microsoft уже больше года, как изменила весь процесс выхода новых релизов для многих своих продуктов, т.к. этот блог про Configuration Manager и прочий Enterprise Client Management, то давайте разберемся, что делать, т.к. развлечений хватает и главное это разложить все по полочкам у себя в голове.
Самое главное, если вам нужна Windows 10 и вы собираетесь переходить на Windows 10, то вам в любом случае надо обновляться до SCCM Current Branch. SCCM 2012 R2 SP1 с кумулятивными апдейтами для вас не подходит. Если таких задач не стоит, то оставайтесь на SCCM 2012 R2, но помните, что любая поддержка рано или поздно заканчивается. Большой холивар по этому поводу был в нашей группе в фейсбуке — SCCM User Group Russia — https://www.facebook.com/groups/sccm.russia/ и на канале в телеграме — https://telegram.me/configmgr (присоединяйтесь, т.к. весь свежак там)
Второй важный момент про который все забывают. Для Windows 10 у нас есть 3 релиза — Windows 10 Current Branch, Windows 10 Current Branch for Business, Windows 10 LTSB (Long-Term Servicing Branch). Все подробно расписано здесь — https://technet.microsoft.com/ru-ru/library/mt574263(v=vs.85).aspx Если вы не поняли, что там к чему, то пишите в комментариях. Из статьи стоит понять одну основную вещь, что время поддержки Current Branch релиза всего 12 месяцев. Многих удивляет это. Так например, поддержка sccm 1511 и Windows 10 1511 уже закончилась, и хотите этого или нет, то вам необходимо обновляться на новые версии. Эта ситуация не касается версий LTSB, например для Windows 10 LTSB 2016 основной цикл поддержки до 2021 года, расширенный до 2026. Все даты можно глянуть тут — https://support.microsoft.com/en-us/lifecycle/selectindex
И третий пункт. Что делать со всем этим, если хотим полностью соответствовать трендам? Ну вот, сейчас и разберемся.
Для полной поддержки обновлений Windows 10 нужен Windows Server 2012 R2 (на самом деле WSUS/SUP на Windows Server 2012R2 / 2016), поэтому если ваш сайт-сервер крутится под Windows Server 2008 R2, задумайтесь о переходе уже сейчас. У нас есть как минимум два способа: миграция сайт-сервера через процедуру восстановления сайт-сервера ConfigMgr — поднимаем рядом новую ВМ с WS Server 2012 R2 и проходим восстановления сайта на новой системе; или в SCCM 1602 появилась возможность выполнить in-place апдейт Windows Server 2008 R2 до Windows Server 2012 R2 — https://docs.microsoft.com/ru-ru/sccm/core/plan-design/changes/whats-new-in-version-1602 Составить какое-то представление о переходе можно по паре постов у меня: раз и два.
Если у вас SCCM 1511 или SCCM 1602, то можно обновиться до SCMM 1606: SCCM 1511 -> 1602 -> 1606 или 1511 -> 1606.
Если у вас SCCM 2012 R2 SP1 (тут какое-то последнее CU, я уже счет потерял всем версиями и апдейтам ;) ), то обновляемся до SCCM 1511 и затем до 1606.
Сам процесс обновления между билдами версии Current Branch описывать смысла не вижу, т.к. в большинстве случаев все проходит гладко, next — next — готово + на просторах интернета полно статей-картинок, где этот процесс описывается.
Кроме этого, не забываем про поддержку базы данных — https://docs.microsoft.com/en-us/sccm/core/plan-design/configs/support-for-sql-server-versions Самое вкусное у нас в SQL 2016, с новым SSRS, интеграцией PowerBi и языком R.
После обновления, скачиваем и устанавливаем Windows ADK 10 1607 — https://developer.microsoft.com/ru-ru/windows/hardware/windows-assessment-deployment-kit, ниже таблица из блога продуктовой группы о поддержке разных версий.
Windows 10 ADK Version |
||||
ConfigMgr Version | 1507 | 1511 | 1607 | |
1511 | Supported | Supported | ||
1602 | Supported | Supported 1 | Supported 2 | |
1606 | Supported 1 | Supported |
1 — Windows ADK 10 1511 обеспечивает базовую совместимость и может быть использован для захвата образов, раскатки образов, добавление драйверов, но рекомендуем обновиться до последней версии Windows ADK; 2 — Последний Windows ADK требуется для деплоя Windows 10 1607.
Как обновить Windows ADK 10 1607?
Удаляем старый Windows ADK, устанавливаем новый Windows ADK 1607, перезагружаем ВМ. Есть нюансы в том, что рекомендуется использовать стандартный путь установки и не менять его, т.к. часто путь на пакет USMT ссылается именно на каталог установки Windows ADK. Так что обязательно проверяйте этот момент. Плюс, я рекомендую обновлять Windows ADK до установки апдейта SCCM 1606.
Что делать с Windows PE?
Ну, а что с ними делать? Обновлять. ;) Есть несколько способов.
- Забрать бутовые образы в каталоге C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment и добавить в Boot Images;
- Воспользоваться скриптом по регенерации образов — https://gallery.technet.microsoft.com/RegenerateBootImageWinPE10-f508f1e4
- Если используете MDT, тогда обновляем еще и MDT, и пересобираем бутовые образы для него, дополнительно можно воспользоваться, например, таким скриптом для переноса драйверов — https://gallery.technet.microsoft.com/Import-boot-image-drivers-c43e04da/ Поддержка Windows 10 1607 появилась в билде 8443 — https://blogs.technet.microsoft.com/msdeployment/2016/11/14/microsoft-deployment-toolkit-8443-now-available/ В целом готовьтесь повторять эти процедуры, т.к. выходит новый билд Windows, выходит апдейт на Configuration Manager, появляется новый WADK и т.д.
Помните, что потребуется поставить галку «Deploy this boot image from PXE-enabled distribution point» в свойствах бутового образа и заменить в свойствах последовательностей задач (Properties — Adcandes — Use a boot image). Проверяем компоненты внутри бутовых образов, если вы используете пош, китайский язык или еще что-нибудь. ;)
Итак, у нас теперь Windows Server 2012 R2, SCCM 1606, последний Windows ADK 10 1607, но на этом все не заканчивается, теперь нам нужна полная поддержка WSUS для работы с фича апдейтами для десятки.
Ставим для WSUS KB3159706 — https://support.microsoft.com/en-us/kb/3159706 Внимательно выполняем все, что сказано в описании к обновлению, про Get-HotFix не говорю, понятно, что проверяем, вдруг уже все ставили.
За компанию забираем шаблоны GPO — Administrative Templates (.admx) for Windows 10 and Windows Server 2016 — https://www.microsoft.com/en-us/download/details.aspx?id=53430
Обновляем клиентов до Windows 10 1607.
Всё веселье здесь. Итак, что мы имеем? Способов обновления несколько. ;)
- Клиент просто скачивает апдейт Windows 10 1607 из интернета;
- После обновления KB3159706 для WSUS, там появляется новый класс обновлений Upgrades, который, кстати, мы не забываем включать. Вот как раз в нем и идут фича апдейты (можно читать как сервис пак или Windows Servicing) для Windows 10. Подтверждаем обновление на WSUS, ставим на клиентов;
3. Ставим апдейт через SCCM 1606: список апдейтов лежит в Windows 10 Servicing. Процедура такая же, как с апдейтами на SUP (Software Update Point), скачиваем обновление, создается Deployment Package, деплоим на коллекцию.
4. In-place upgrade. Как вы помните, в current branch релизе 1511 появился шаг при создании последовательности задач (task sequences) — Upgrade an operating system from an upgrade package. Для этого нам необходимо просто распаковать ISO с Windows 10 1607 и добавить в Operating System Upgrade Packages, создать последовательность и задеплоить на клиентов. Профит.
Но! это идеальный вариант, т.к. всегда что-нибудь пойдет не так и оно пойдёт. ;)
Обязательно необходимо добавить MIME-types ESD на IIS WSUS’a, т.к. это одна из самых частых проблем.
File name extension: .esd MIME type: application/vnd.ms-cab-compressed
Логи по апдейту до Windows 10 1607 лежат на системном диске в $Windows.~BT — Setupact.log и setuperr.log. Часть клиентов может получить ошибку (0xC1800118). Один из вариантов лечения обновить агента SCCM до последней версии, т.к. бывает так, что девайс может долгое время не появляться в сети.
Другое решение описано в KB3194588. Даже если вы установили обновление для поддержки апдейтов на Windows 10, часть клиентов может сыпать вот такими ошибками:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
setupact.log Error SP CSetupPlatform::ResurrectNewSystem: Cannot resurrect new system.: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat: The system cannot find the file specified. [0x00000002] __cdecl UnBCL::FileStream: :FileStream(const class UnBCL::String *,enum UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)[gle=0x00000002] Warning MOUPG ImageExit: Unable to resurrect NewSystem object. hr=0x80070002 setuperr.log Error MOUPG RecoverCrypto: File is encrypted, but no key was provided. Error MOUPG CDlpActionRecoverCrypto::DoCrypto(1713): Result = 0xC1800118 Error MOUPG CDlpActionRecoverCrypto::ExecuteRoutine(2465): Result = 0xC1800118 Error MOUPG CDlpActionImpl<class CDlpErrorImpl<class CDlpObjectInternalImpl<class CUnknownImpl<class IDlpAction> > > >:: Execute(441): Result = 0xC1800118 |
И как мы видим, якобы «File is encrypted, but no key was provided», но если подключиться к базе WSUS — \\.\pipe\MICROSOFT##WID\tsql\query и выполнить:
1 2 3 4 5 6 |
select TotalResults = Count(*) from tbFile where (IsEncrypted = 1 and DecryptionKey is NULL) or (FileName like '%14393%.esd' and IsEncrypted = 0) |
Мы увидим, что если значение больше 0, значит у нас проблемы. ;)
Все дело в том, что нет Decryption ключей в базе для файлов ESD. Там просто все NULL.
Надо немного подшаманить с WSUS.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# выключаем классификацию обновлений - Upgrades Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq "Upgrades"} | Set-WsusClassification -Disable # отменяем и удаляем обновления с попаданием по "версия 1607" $s = Get-WsusServer $1607Updates = $s.SearchUpdates("версия 1607") $1607Updates | foreach { $_.Decline() } $1607Updates | foreach { $s.DeleteUpdate($_.Id.UpdateId) } #включаем классификацию Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq "Upgrades"} | Set-WsusClassification |
Помните про название в обновлениях, это относится к $1607Updates = $s.SearchUpdates(«версия 1607»)
Затем удаляем файлы из таблицы tbFile:
1 2 3 4 |
declare @NotNeededFiles table (FileDigest binary(20) UNIQUE); insert into @NotNeededFiles(FileDigest) (select FileDigest from tbFile where FileName like '%14393%.esd' except select FileDigest from tbFileForRevision); delete from tbFileOnServer where FileDigest in (select FileDigest from @NotNeededFiles) delete from tbFile where FileDigest in (select FileDigest from @NotNeededFiles) |
Синкаем апдейты по новой:
1 2 |
$sub = $s.GetSubscription() $sub.StartSynchronization() |
Вот, теперь другое дело.
Должно быть вот так:
Нюансы с активацией Windows 10 LTSB 2016
Для активации LTSB релиза, вам необходимо на KMS сервере добавить KMS ключ от Windows Server 2016 DataCtr/Std и убедиться, что есть оба этих апдейта: KB3172614 + KB3058168 Для этого идем на свой портал лицензий, забираем ключ и добавляем на KMS хост:
- добавляем kms ключ: slmgr -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX (Win2016KMS Host Key)
- активируем: slmgr -ato
- проверяем: slmgr -dlv
По мере поступления новой информации, буду обновлять пост.
Не забывайте, что у нас есть группа в фейсбуке, телеграм чат по Configuration Manager’y, теперь еще и чат по Operations Manager’y и флудилка IT Talks.
Гонка за обновлением софта продолжается … :)
Вот, как удобно, мы как раз думаем, как постепенно обновляться.
Согласен с Игорем, что удобно!
А еще Тоха спец по SCCM и всегда поможет (если время позволит) !!!
Какая виндоус десять? =) Мы вот только на семерку собираемся переезжать, а тут уже для десятки столько надо. Ахахаха
«Для активации LTSB релиза, вам необходимо на KMS сервере добавить KMS ключ от Windows Server 2016 DataCtr/Std»
То есть используются сервер лицензии для LTSB? А для Windows 10 Enterprise тогда какие?
Здравствуйте такой вопрос. Есть System Center 2012 R2 апгрейд до 2016 платный или просто обновив уже установленные можно будет пользоваться? Вопрос конечно странный, просто на работе целый спор по этому поводу.
апгрейд возможен, если у вас еще действует SA на System Center (когда вы покупали System Center с ним же идет SA на 2 года, если мне память не изменяет), если SA закончился, то надо покупать лицензии, либо продлевать SA, но здесь эти нюансы проще уточнить у вашего дистрибьютора.
Антон, а такой вопрос… Обязательно ли иметь роль WSUS прямо на сервере SCCM? А если у нас он стоит «рядом»?
Или чтобы все вот эти фишечки с Upgrade работали не через WSUS, а через SCCM, то надо ставить WSUS на и ставить Software Update Point?
Просто нас устраивает функционал WSUS’а, и не видим смысла его переносить на SCCM только ради этого.