Автоматические обновления сборки Windows 10 с перезагрузками только в нерабочее время — как?
Уже не первый месяц пытаюсь наладить автоматические обновления Windows на предприятии таким образом, чтобы это не мешало пользователям и не отвлекало меня. И если с накопительными обновлениями всё получилось, то обновления сборок не поддаются автоматизации. Имеются следующие проблемы:
1. После того, как произошла установка новой сборки, у пользователя появляется сообщение о необходимости перезагрузить компьютер, не смотря на включенную политику "Отключить автоматическую перезагрузку для обновлений во время периода активности". Это отвлекает пользователей и провоцирует глупые вопросы в мой адрес;
2. Если не дай бог пользователь согласится с перезагрузкой, то он может остаться без компьютера на ближайшие полчаса-час, и теперь в мой адрес будут не вопросы, а негодование;
3. Вечерняя автоматическая перезагрузка по планировщику не приводит к применению новой сборки. Чтобы сборка применилась, нужно вручную нажать на кнопку "перезагрузить сейчас" в окне "обновление и безопасность" либо выбрать "обновить и перезагрузить" в меню пуск.
Что было сделано:
1. При помощи групповых политик пользователям запрещено выключать компьютеры;
2. На компьютеры в планировщике установлен скрипт который вечером проверяет активность пользователя и перезагружает компьютер через полчаса простоя. После перезагрузки скрипт выключает компьютер.
3. Были испробованы сторонние утилиты: downloadinstallpatches.ps1 и shutdownWithUpdates.exe. Была попытка применить устаноыленную сборку 1909 на О/С со сборкой 1809 - обе утилиты лишь перезагружали компьютер, но сборка так и не применялась. Всё получилось только после нажатия в меню пуск "обновить и перезагрузить".
Прошу помощи! Может есть какие-то хитрые групповые политики или специальные приёмы? Или может перенести установку обновлений вообще на вечер, но как тогда мой скрипт узнает, когда уже можно выключать компьютер? Ведь сутками работать - тоже не дело.
Если уж вы начали пользоваться скриптами, может быть вы просто допишете короткий скрипт на AHK, который просто курсором прокликает до "обновить и перезагрузить"? Если разрешения мониторов одинаковы, то такой скрипт компилится в EXE и тот вызывается в конце вашего скрипта из пункта 2, вместо простой перезагрузки.
Колхоз, конечно, но пользовался для похожих целей - работает. Проверки "попадания в нужное место" можно выполнить с помощью проверки цвета пикселя под курсором (если разрешение мониторов, опять же. одинаковое) либо вообще эмулировать не мышь, а клавиатуру (в 10ке ведь не сломали навигацию в меню "пуск" с клавиатуры?)
Спустя год нашёл решение!
Оказывается в Windows 10 есть недукоментированная возможность применить обновления при обычной перезагрузке: для этого нужно установить значение 1 типа DWORD для ключа по-умолчанию в разделе:
У этого раздела специфичные доступы, так что мне удалось его изменить только по команде regedit /s имя_импортируемого_файла.reg.
Информация взята из блога Дениса Бабкина: https://dennisbabkin.com/blog/?t=how-to-enable-ins...
Возможно, дело не в длине периода активности, а в том, что вне этого периода компьютеры либо выключены, либо спят. В результате получается, что система видит, что сборка уже долгое время не применяется, и начинает долбить пользователя требованиями перезагрузить компьютер.
А перенести обновления на ночь - это ж надо чтобы компьютеры сутками работали, верно? Нехорошо это.
А как у Вас организован процесс обновлений сборок Windows 10?
> как у Вас организован процесс обновлений Григорий Бондаренко, у нас никак, у нас еще Win7 кругом.
> чтобы компьютеры сутками работали
Будить машину с помощью WoL, обновлять, ребутать, проверять живость и вырубать. В случае нештатной ситуации откатывать. Как-то так по идее.
Хотят тут еще должен быть этап тестирования обновлений на некой тестовой группе машин.
Мне кажется, что подобные задачи решаются при помощи SCCM/WSUS. Тогда сервер обновлений качает апдейт, а затем "пушит" обновления в заданное время (ночью, или когда настроите).
Проблема не в том, как обновления пушатся, а в том, что обновления сборки устанавливаются, но не вступают в силу автоматически, т. к. для этого компьютер должен быть перезагружен в особом режиме: либо автоматически вне заданного периода активности, либо вручную по нажатию кнопки "обновить и перезагрузить". Автоматически компьютеры не перезагружаются, т. к. сотрудники, закончив работу, выключают/усыпляют свои устройства. Вручную сотрудники тоже не догадываются перезагрузить, т. к. эти тётеньки и близко не являются опытными пользователями ПК. Я мог бы это делать по скрипту, но похоже такого скрипта не существует в природе.
PowerShell скрипт с модулем Windows update - работает. (гуглите "Update and Upgrade Windows 10 using PowerShell". Первый же результат на tenforums.com выдаст вам решение от А до Я)
Его настраиваете как Scheduled task, получаете искомое.
Евгений, в том то и дело, что PowerShell скрипт у меня не работал на тестовой машине. Я специально взял ноутбук с установленным апгрейдом до 1909, но ожидающим перезагрузки. Я запускал этот скрипт и эту утилиту, и тестовый ноутбук просто перезагружался, новая сборка не вступала в силу. Только после того, как я руками нажал на кнопочку "обновить и перезагрузить", версия сборки поменялась. Что за ерунда, не могу понять.
Что касается WSUS, то он у меня сконфигурирован и успешно распространяет обновления, включая новые сборки Windows 10. У меня проблема именно с вступлением новых сборок в силу на конечных рабочих станциях. То-есть, все обновления устанавливаются автоматически, но сборки Windows 10 не вступают в силу, пока пользователь не нажмёт кнопочку "обновить и перезагрузить". А как у Вас настроены перезагрузки при обновлениях сборки Windows 10?
Почитайте весь тред здесь Очень хорошо все разжевано, особенно на второй странице в конце.
Идея следующая: запретить автоматические обновления, затем запускать обновления вот этой командой. Get-WUInstall -MicrosoftUpdate -AcceptAll -AutoReboot
Скрипт, на который Вы ссылаетесь, работать не будет, изменился синтаксис. Если нужно решение готовое, попробуйте это По крайней мере оно работает. Хотя я бы писал что-то свое.
У меня это все реализовано через SCCM, но у меня масштабы совсем другие.
Евгений, большое спасибо, я попробую!
И всё-таки, интересно было бы узнать, какая у Вас политика электропитания? У Вас сотрудники оставляют компьютеры включёнными в конце рабочего дня? Что с ними происходит дальше? Они работают круглосуточно?
Григорий Бондаренко, у нас вообще никто не задумывается над этим, поскольку у 99% лэптопы. Кто-то забирает компы домой, потому что следующим днем работает из дому, кто-то просто выключает, кто-то вообще бросает все, как есть и не парится, бедж вытащил - комп залочился, все очень демократично. Обновления пушатся 2 раза в неделю. Реализовано групповыми политиками.