Мне недавно понадобилось сделать обновленный образ Windows 8.1, и я наступил на грабли, жалобу на которые озвучивал несколько месяцев назад участник форума. Проблема в том, что в режиме аудита невозможно обновить ОС из панели управления.
Отвечая на вопрос в форуме автоустановки, я просто нагуглил модуль PowerShell для обновления системы и кинул ссылку в тему, но участник столкнулся с какими-то проблемами. Я предложил решить их в форуме скриптов, но дальше вопрос не отслеживал. По-моему, человек так и не разобрался.
Вообще, проблема его была в неправильно поставленной задаче. Цель ведь не в том, чтобы обновиться из режима аудита, а в получении обновленного образа системы. Увидев, что центр обновлений не работает, я даже не стал качать модуль PowerShell, а пошел другим путем.
Впрочем, сегодня я покажу вам оба решения. Я экспериментировал на английской Windows, так что непримиримым адептам локализованного интерфейса придется немного потерпеть.
[+] Сегодня в программе
Почему центр обновления не работает в режиме аудита Windows 8.1
Ответ поддержки Microsoft процитирован кем-то на форуме TechNet. Центр обновлений Windows проверяет, завершила ли система этап OOBE (из которого вы и входите в аудит). Если не завершила, обновление не выполняется.
С одной стороны, это предотвращает перезагрузку на этапе OOBE. С другой стороны, у ОЕМов появляется возможность контролировать набор устанавливаемых обновлений при создании фабричного образа, даже если он настроен на автоматическое обновление.
Почему Microsoft изменила поведение именно в Windows 8.1, я не знаю – возможно, именно по просьбам ОЕМов. Однако заметьте, что не работает именно обновление из панели управления, а значит есть обходной путь.
Обновление в режиме аудита (Windows Update PowerShell Module)
Для автоматического обновления системы из консоли вы можете взять на вооружение очень удобный модуль PowerShell, PSWindowsUpdate. Он работает не только в режиме аудита, но именно в нем особенно ценен. Инструкции времен 8.1 уже неактуальны, поэтому я убрал их со страницы.
Доступные обновления загрузятся и установятся автоматически. Выглядит это примерно так:
По окончании установки перезагрузите систему, чтобы завершить установку обновлений. Вы снова попадете в режим аудита и сможете убедиться, что обновления установились.
Рекомендую повторить запуск wu.cmd на случай, если после установки первой партии обновлений появится вторая.
Если вы хотите просто посмотреть список доступных обновлений, замените последний блок команды (после точки с запятой) на:
Get-WUInstall -ListOnly
В остальном же, модуль подробно задокументирован, поэтому я не буду разбирать все его параметры.
Бонус! Вы можете очистить папку WinSxS прямо в режиме аудита (Microsoft рекомендует это с целью снижения размера образа).
По завершении обновления вы можете удалить модуль, ранее скопированный в папку Windows. Когда вы закончите свои черные дела, обобщите и запечатайте образ.
%SystemRoot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /quiet
Это ведь было просто, не правда ли?
Обновление в режиме аудита (скрипт VBS)
После публикации материала читатель Артем указал в обсуждении на альтернативу модулю PowerShell — скрипт VBS, опубликованный на MSDN. В комментариях ↓ он обосновал свою рекомендацию и поделился способом автоматизации установки обновлений с помощью этого скрипта.
Обычное обновление системы (Think Outside the Box!)
Но, допустим, вы не разобрались с модулем PowerShell или не знали про скрипт VBS. Однако задача-то перед вами какая? Создать обновленный образ системы, обобщенный с помощью sysprep. При этом вовсе необязательно обновлять Windows именно в режиме аудита!
Можно прийти к цели иначе, что я и сделал в соответствии с девизом этого блога:
- Завершите этап OOBE – укажите имя компьютера, создайте локальную учетную запись – все как при обычной установке.
- Обновите систему из центра обновлений Windows и перезагрузитесь. Можете также очистить папку WinSxS.
- Войдите в режим аудита командой:
%SystemRoot%\system32\sysprep\sysprep.exe /audit /reboot
- В командной строке от имени администратора выполните rundll32.exe sysdm.cpl,EditUserProfiles и удалите профиль пользователя, созданный на шаге 1.
- В командной строке, запущенной от имени администратора, удалите учетную запись пользователя, которую создали на шаге 1:
net user “ИмяПользователя” /delete
Остается лишь запечатать образ (команда в конце предыдущего раздела статьи).
У вас может возникнуть вопрос, является ли такой способ поддерживаемым. Безусловно! Более того, в поисках доказательств я наткнулся на пошаговое руководство на TechNet, где именно такой сценарий и описан. Режим аудита просто ускоряет процесс подготовки образа, позволяя обойтись без создания учетной записи и последующего ее удаления (шаги 4 и 5).
Дискуссия и опрос
У главной страницы сайта автоустановки почти 1.4 млн просмотров – да, когда-то я регулярно создавал сборки :) Но в последнее время делаю это крайне редко. А вы создаете сборки? Напишите в комментариях, что входит в состав ваших сборок и зачем вы их делаете.
Ах да, обязательная ссылка: Super Mega Zver Black eXtreme Edition :)
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
Андрей
Когда-то (во времена Windows XP) делал. В основном, с внесением всяких «твиков», удалением того, чем никогда не пользовался и т.д. Но после одного случая «завязал». В тот раз столкнулся с забавным «багом» в свежеустановленной со сборки системе. При использовании браузера IE невозможно было прикреплять файлы к сообщениям форумов, построенных на движке IPB. Причем, в других браузерах проблема отсутствовала. От греха подальше с тех пор пользуюсь только неизменёнными образами от Microsoft.
Maxx
Сборки домашних версий никогда не делал, от греха подальше, а вот серверную один раз пришлось. С лицензионного диска тупо не вставал 2003-й сервер, уже не помню, что там было точно, но пришлось интегрировать сервис-пак, тогда процесс пошел.
Роман Морозов (aka morozoff)
Вадим, Спасибо за статью. Очень грамотно и доходчиво изложен материал, впрочем как всегда )
Сам так и не смог, в свое время, разобраться с этой проблемой. Пришлось интегрировать обновления с помощью dism. Думаю, на досуге, обязательно попробую вышеперечисленные методы.
Сам делал сборки 2000, XP и 7-ки. Сборки я делаю для себя и рабочих ПК. В них включаю лишь обновления, необходимые мне твики, файлы ответов, чтобы ручками каждый раз параметры не вводить. Интеграцией ненужных тем и программ никогда не занимался и не буду, так как программы устаревают, а очень часто переделывать сборки нет времени и желания, а темы — зачем мне они — как работаю на «классике» со времен 98 так и по сей день остаюсь ей верен )
Vadim Sterkin
Роман, в том-то и дело, что проблемы тут как таковой нет, поскольку режим аудита лишь для удобства. Но в многократном обобщении одного и того же образа есть нюансы.
Windows 7
Windows 8
Alexsandr
И не более числа указанного в пункте «Оставшееся число возвратов к исходному состоянию активации», то есть если там прописано 3, то только 3 раза вы сможете воспользоваться sysprep’om.
ЁжЫГ
А одновременно для себя и для работы — нельзя? :)
Vadim Sterkin
В своих опросах я не пытаюсь делать всеобъемлющие списки вариантов. Традиционно предлагается выбрать наиболее актуальный для вас или последний.
Alexsandr
«…Проблема в том, что в режиме аудита невозможно обновить ОС из панели управления…»
Не совсем понимаю что за проблема. Я создаю образ следующим методом, устанавливаю ОС на виртуальную машину, затем накатываю обновления через Центр обновления Windows и затем запускаю sysprep. Все, проблем нет, ставил так системы много раз все обновления на месте. Что сервер, что обычная винда.
Vadim Sterkin
Александр, проблема в режиме аудита Windows 8.1. Об этом написано в статье.
Alexsandr
«…Цель ведь не в том, чтобы обновиться из режима аудита, а в получении обновленного образа системы…»
А зачем тогда в статье вот это предложение?
Vadim Sterkin
Александр, затем, что именно так формулируют вопрос люди, столкнувшиеся с проблемой.
Игорь
К сожалению, в опросе отсутствует пункт «Да, делал, но прекратил». Именно таков мой ответ. Выбрал таки в итоге «Я в танке»
Ранее делал сборки на базе WinXP под конкретные машины — допустим только эта материнская плата и небольшие производные от нее или под конкретный ноутбук/нетбук. Для себя + тестирование на VM.
Сейчас для меня это потеряло актуальность, т.к. те системы, что были сделаны ранее, уже не актуальны. Новые системы на базе 7 / 8 — накатаны, сделаны образы на случай краха (содержатся в полной боевой готовности — бекап каждые 6 часов в сутки).
Если уж дело касается вопроса делать образ/качать, то тут не все очевидно. Если побаловаться на ВМ — то беру «левую» сборку и начинаю ее гонять, в т.ч. вирусами (!). Если надо что-то проверить в нормальных боевых условиях — беру голый или готовый образ, который указан выше, загружаю в ВМ и не испытываю проблем, если вдруг что-то пойдет не так.
В любом случае — взял решение на заметку (а вдруг…)
P.S.: Вадим, расскажите, пожалуйста, немного о ваших велопутешествиях. Давно уже нет интересного материала для чтения :)
Vadim Sterkin
Игорь, видимо, ваш пункт был «Нет, и они мне не нужны», ибо я нахожу странным даже баловство с чужими сборками (разве что для изучения их содержимого).
О вело напишу как-нибудь, да :)
Евгений_О
А что есть «сборка»? Интеграция чего-то в дистрибутив? А готовый образ, развёртываемый по сети — это «сборка» или нет? А если его не по сети, а ручками переносить приходится? А виртуалки? Я их «собираю», копирую, использую заранее настроенные
Из-за расплывчатости понятия — «я в танке!»
Vadim Sterkin
Евгений, сборка — дистрибутив, отличный от оригинального.
Мое определение не претендует на точность, правильность, всеобъемлемость. В качестве побочных эффектов может вызывать возбуждение, раздражение, повышенное потовыделение. Не вникать без консультации с врачом.
Даниил
Вадим! просто супер вовремя, сижу делаю корпоративный образ, попутно вспомнил, что есть такая проблема сижу думаю, бац падает рассылка от вашего сайта в почту! спасибище!
Vadim Sterkin
Как говорится, хороша ложка к обеду :) Вообще, эта запись с прицелом на страждущих из будущего, как и большинство материалов, решающих специфические задачи.
Виталий К. ©
Раньше делал, во времена 32 битной ХР. С 64 битной возникли неразрешимые для меня сложности с интеграцией своего сертификата, поэтому забил.
artem
Я не одобряю установку модулей PowerShell для разовой задачи. И тем более не одобряю размещение собственного файла внутри System32.
Вообще, для решения этой задачи можно воспользоваться готовым скриптом. Нужно только скопировать текст со странички и сохранить в блокноте с расширением vbs. При этом сам скрипт может лежать где угодно.
http://msdn.microsoft.com/library/windows/desktop/aa387102
И, кстати, в Windows Server этот скрипт уже встроен, ничего даже сохранять и копировать не нужно.
Vadim Sterkin
Артем,
1. В чем проблема с установкой модулей PS для разовой задачи?
2. Я указал, что из System32 модуль можно удалить по окончании процедуры. Да, можно было обойтись и без копирования туда, но такой подход минимизирует проблемы с исполнением скрипта. Копирование своих файлов в системные папки поддерживается.
3. Спасибо за скрипт VBS. Прозреваю, что при его появлении ты бы сказал, что политика партии предписывает использовать PS :) И ты сам тестировал опубликованное на MSDN? Судя по комментариям, скрипту тоже далеко до идеала.
artem
В том же, в чём проблема с использованием стороннего ПО вместо встроенного :) (а) лишние телодвижения и (б) захламление системы. С любым из этих недостатков можно мириться, но два вместе — для меня это чересчур.
Да я не спорю, что поддерживается. Просто это опять на мой взгляд слишком сложный и рискованный путь. Здесь нет, конечно, никакого криминала. Но при прочих равных я бы предпочёл более длинную командную строчку, чем копирование напрямую в системную папку.
Да, тестировал. (Я, как и ты, избегаю советовать то, чего не пробовал сам). Этот скрипт работает.
Конечно, он не идеален. Например, не позволяет выбрать, какие обновления ставить. Но для твоей задачи это не принципиально. (Кстати, та версия скрипта, которая встроена в Windows Server, лишена этого недостатка).
И да, VBS это прошлый век :) Опять же, при прочих равных я бы предпочёл посоветовать скрипт на PowerShell. Но готового такого скрипта нет (или я не знаю). А на он уже VBS есть. К тому же, официально опубликованный. (Пусть и на правах сэмпла). Всё это в моих глазах сильно перевешивает имеющиеся альтернативы :)
Vadim Sterkin
Артем, я не одобряю приравнивание временного копирования и импорта модуля PS к установке стороннего ПО вкупе с засорением системы :) Я вот не стал лепить более длинную командную строку, исходя из своих навыков скриптования и оценочного суждения о работоспособности такого решения в руках людей, не разобравшихся с исходной задачей.
Я сейчас не могу проверить VBS, но судя по
процесс установки обновлений не полностью автоматизирован. И тот факт, что он официально опубликован ни разу не перевешивает подобные недостатки. Ведь как только ты начинаешь править сэмпл, вся его официальность сходит на нет :) А вообще, Microsoft неплохо было бы запилить командлет для WU — это сняло бы сразу все озвученные тут претензии.
artem
Ну, у тебя в исходной постановке задачи не было ничего о том, что скрипт должен работать без единого вопроса :) В твоём варианте куча ручных действий. В моём — ну, надо нажать кнопку «Y» один раз.
Но если мы уж начали тут меряться длиной командной строки и вспоминать всякие устаревшие технологии, то можно сделать так:
Так что не надо ничего править в сэмпле :)
И да, коммандлеты для WU будут. Когда-нибудь. Ну или как минимум скрипты на пошике. (У меня даже где-то был готовый, но конечно не официальный. Да и лень искать).
Px
А sconfig в Server Core для обновления что использует?
artem
как раз файл WUA_SearchDownloadInstall.vbs он и использует. Только не тот, что на MSDN. А чуть более расширенную его версию, которая лежит в %SystemRoot%\System32\en-us.
NikolayHAOS
Лет 10 назад сам сборки делал только любопытства ради, но уже давненько не делал ни каких сборок.
Только «чистая» виндовс и последовательный накат необходимого софта и обновлений. А вот тут стараюсь использовать автоматизацию, насколько это возможно конечно.
И не каких сборок.
Андрон
Во времена ХР делал, чтобы решить проблему OEM-дистрибутива, не предлагающего при переустановке системы выбрать раздел и автоматически устанавливающий новую ОС на раздел D.
С тех пор многое изменилось, Windows стала более стабильна и необходимости что-то делать нет. Не делаю даже архивный образ, т.к. полностью уверен в своих силах, справиться с какой-либо проблемой. Мало того(сейчас меня осудит большинство), храню данные на системном разделе, в профиле пользователя. И меня это ничуть не напрягает. Хотя конечно архив личных фото продублирован. Кроме того, защита системы включена на всех разделах и проблем с утратой файла не существует, вытаскивается даже то, что было удалено из облака.
Даниил
Вадим!
а не сталкивались с нерабочим RDP в режиме аудита Win8.1 update 1 ?
Vadim Sterkin
Нет.
Даниил
попробуйте как нить на досуге , сильно удивитесь
Vadim Sterkin
Даниил, у меня вряд ли возникнет необходимость в RDP в режиме аудита. А вы могли бы озвучить свою, между прочим.
Матвей
Сборки делаю по работе — образы Windows 7 x86/x64. Собираю их при помощи MDT 2013 (Microsoft Deployment Toolkit), развертывание по машинам идет через транспорт WDS.
К образу подвязаны различные последовательности (например, обновление машины с сохранением пользовательских данных, полная переустановка ОС с зачисткой жесткого диска).
Есть отдельная последовательность на чистую установку эталонного компьютера, на который устанавливается операционная система, добавляются нужные твики и пакет Microsoft Office (остальные программы ставятся групповой политикой, потому в образ не входят).
В упомянутой выше последовательности для эталонной машины есть задача по поиску и установке обновлений, нужно лишь указать заранее в скрипте адрес WSUS-сервера предприятия. После установки запускается очистка «мусора» из WinSxS (спасибо Вадиму за ту статью, теперь образ стал «весить» меньше).
В итоге создание эталонной машины и получение свежеобновленного ISO-образа заключается в выборе нужной задачи, все остальное MDT делает самостоятельно. Остается лишь в завершении заменить полученным образом старый ISO (с прошлого месяца), и все!
Vadim Sterkin
Матвей, спасибо за развернутый ответ. Коммент изначально ушел в спам почему-то.
Даниил
ну например создание доменных профилей администраторов, заранее, чтобы админ мог войти в систему даже при недоступности домена. учитывая то что утечки админов доменные
Vadim Sterkin
Даниил, два вопроса:
1. Зачем нужно создавать профили доменных администраторов заранее в режиме аудита?
2. Зачем для этого RDP?
Я это к тому, что все это выглядит как неправильно поставленная задача.
Даниил
1. для ускорения входа при логине на пк юзера, (не надо ждать пока идет создание профиля на пк в папке C:\users + как бонус возможность входа при недоступности сети)
2. RDP потому, что админы географически находятся в разных местах и это самый простой и быстрый способ зайти на пк
Vadim Sterkin
Даниил, простите, о каком создании профилей доменных администраторов в режиме аудита может идти речь, если после sysprep все профили зачищаются, и остается только локальный администратор? Если же вы не делаете sysprep, то вам и режим аудита не нужен совсем.
Даниил
профили не подчищаются, образ в режиме аудита загоняется в домен. делается все нужные махинации включая вход под нужными юзерами, потом выводим из домена запаковываем, заливаем на целевые пк и все ок профили на месте включая персональные настройки.
Даниил
Вадим, кстати вот эта проблема и еще одно применение RDP в режиме аудита http://social.technet.microsoft.com/Forums/windows/en-US/91dc2f06-ec20-46df-8f86-eb158999f963/rdp-service-not-listening-on-3389-win-81?forum=w8itpronetworking
Vadim Sterkin
Даниил, как бы то ни было, вторая половина моей статьи для вас :)
asdf
Может кому интересно будет http://www.it-sobytie.ru/events/2085
Валерий
Не могу удалить профиль пользователя, (шаг 4), получаю надпись
«Profile not deleted completely. Error- The directory is not empty.»
Vadim Sterkin
Валерий, скорее всего, дескриптор какого-то процесса удерживает файл из удаленного профиля. Поиск по имени пользователя (т.е. названия его папки в C:\Users\) в Process Explorer и закрытие дескриптора должно помочь. См. Как определить, каким приложением занят файл.
Валерий
Скажите пожалуйста, Вадим, грамотно ли воспользоваться этим способом?
Vadim Sterkin
Валерий, см. вторую половину статьи.
mnz
Вадим, по второй части статьи.
А возможно удалять профиль пользователя в режиме аудита не вашими способами, а через управление учетными записями — удаление учетной записи? Объясняю почему. После того, как удалил через «поиск-профи» и командную строку ранее созданного пользователя (например User), запаковав образ и развернув на новой машине, мастер не дает создать пользователя под таким же именем (User, так как имя уже использовалось), которое я создавал на первоначальном этапе подготовки настройки образа.
Vadim Sterkin
Это п. 5 той же инструкции. Я аккуратно использую терминологию, а пп. 4 и 5 отражают разницу между профилем пользователя и учетной записью.
По проблеме — либо что-то не удалили, либо не обобщили.
mnz
В любом случае хорошо, что если удалять учетную запись через панель управления — диспетчер учетных записей, то хвосты не остаются. Проверял это, через пп. 4 и 5, в первом случае учетная не отображалась, во втором — пользователь не найден.
Спасибо за инструкцию, на днях попробую и первый способ.
Vadim Sterkin
Команда net user является полным эквивалентом этого действия, а инструкции проще и короче (по кр. мере, были до вашего вопроса :).
Nikolay
Всем доброго времени суток.
Стоит задача установить windows 8.1 Enterprise на 7 одинаковых компьютеров к классе информатики.
Очень надеюсь что ваша статья мне поможет, потому как установка винды и оффиса + обновления, это уже будет победа, а если еще и пару программ можно будет заранее в образ добавить и драйвера сохранить, то я просто буду на седьмом небе от счастья.
А профиль я в ручную настрою, там не много изменений. Да и машин всего 7, чем лазить по инету ища что за что отвечает, не дай Бог еще накосячу. :-)
О результатах обязательно отпишу.
Catman
Вадим, здравствуйте!
Решил сделать обновление первым способом, но вот у меня случился затык прям на первом пункте:
Сохраните архив PSWindowsUpdate.zip на USB-диск и (это важно!) щелкните на нем ПКМ – Свойства – Разблокировать файл.
К сожалению не нашел в свойствах файла пункт «разблокировать файл»
Vadim Sterkin
Я благословляю вас на следующий шаг :)
Catman
ну я вообще не дожидаясь перешел ко второму шагу )
а в чем прикол?
Vadim Sterkin
Инструкции верны на момент написания, в Windows с настройками из коробки.
Валерий
Вадим, а нужно ли интегрировать рекомендуемые обновления в дистрибутив?
Vadim Sterkin
Валерий, а вы устанавливаете рекомендуемые обновления после установки Windows? Вот вы сами и ответили на свой вопрос.
Валерий
Простите, Вадим, я хотел спросить про «необязательные».
Vadim Sterkin
Простите, Валерий, разве из моего ответа непонятно, что решать должны вы сами?
Николай
Вадим, спасибо большое за подробное обьяснение, теперь проще будет, меньше канители))
Алексей
может кто сталкивался, может нет. проблему в общем то решать не требуется, просто наблюдение.
при интеграции обновлений в win8.1 методом PowerShell Module, после добавления таких образов в wds на 2012 r2 сервере, сам wds перестает запускаться. громко сыпал ошибками вида An error occurred trying to start the Windows Deployment Services server. \ service did not respond in a timely fashion \ и тп.
подробнее тут http://blog.augustoalvarez.com.ar/2009/01/14/troubleshooting-wds-event-id-257-258-266-513/
грешил на все и всех, а проблема решилась удалением этих самых образов. причем другие образы, тоже win8.1 но обновленные по старинке, работают прекрасно.
Даниил
Оба способа перестали работать, видимо после недавних изменений политки распространениия обновлений.
Vadim Sterkin
В статье три способа, и третий не может не работать
Даниил
…ну я естественно имел ввиду два нестандартных способа.
Уже пришлось воспользоваться третьим, эстетическая часть создания образа пострадала, т.к. ОС уже один раз прошла этап OOBE, все таки считаю, что создавать образа нужно именно в режиме аудита и не выходить из него, но это сугубо мое мнение.
Vadim Sterkin
В какой ОС тестировали?
Технически без разницы, но в аудите быстрее
Даниил
тестировал на Win8.1 Enterprise
straannick
Вадим, спасибо за статью. Однако, скажите, пожалуйста, как бы она изменилась, если сменить постановку задачи с «Цель ведь не в том, чтобы обновиться из режима аудита, а в получении обновленного образа системы. » на «Цель ведь в том, чтобы просто обновить работающую систему»?
У меня после установки W 8.1 процесс поиска обновлений бесконечен и безрезультативен. И выглядит это дико, чем бы не объяснялось.
Дополнительный вопрос — как выяснить «завершила ли система этап OOBE» и почему он может не завершиться после завершения установки системы? (или, может, это к моему случаю не имеет отношения?)
Vadim Sterkin
1. Вам сюда http://forum.oszone.net/thread-240544.html. Предварительно попробуйте скачать вручную и установить последнее накопительное обновление — запрос в гугле month update rollup 8.1. Например сейчас есть накопительное за ноябрь (november) и безопасность за декабрь.
2. Если вы вошли в систему пользователем, то завершила.