Начиная с осени 2019 года у ответов на эти вопросы появились новые нюансы, которые в письме попросил разъяснить читатель блога Евгений. Сегодня я покажу, как узнать дату первоначальной установки Windows и распутать клубок истории обновлений ОС в новых реалиях.
[+] Сегодня в программе
Дата установки последнего обновления компонентов
Казалось бы, в PowerShell можно легко посмотреть дату установки Windows и даже вывести ее в удобном формате.
(Get-CimInstance Win32_OperatingSystem).InstallDate
Именно эту команду я использовал для сбора сведений в утилите CheckBootSpeed. В современных Windows вас здесь ждет первый нюанс.
Переустановка поверх
Команда выше покажет дату первоначальной установки Windows лишь в том случае, если после чистой установки не было ни одной переустановки поверх. Напомню, что поверх текущей версии можно поставить такую же, либо более новую, что официально называется обновление компонентов.
Если обновления компонентов были, команда показывает дату установки последнего из них, причем только если обновление выполнялось путем переустановки поверх любым способом, включая Windows Update (WU – способ доставки новой версии, нежели ее установки). Я не случайно подчеркиваю этот момент, потому что здесь скрыт следующий нюанс.
Тумблер (enablement package)
Начиная с 2019 года осенние выпуски являются стабилизирующими, при этом у них общая кодовая база с весенними. Поэтому весенние версии получают небольшой набор новых фич постепенно в рамках накопительных исправлений. Обновление до осенней версии включается отдельным исправлением.
Я неоднократно разбирал этот момент под разными углами в канале Telegram, ищите в нем тумблер. Например, если вы обновили 20H1 до 20H2 посредством:
- установки с флэшки или MCT, команда покажет дату установки 20H2
- Windows Update или вручную отдельным исправлением, команда покажет дату установки 20H1
Чтобы посмотреть дату включения тумблером, надо знать номер статьи базы знаний, который находится поиском по enablement package. Например:
Недавняя история обновлений компонентов
Теперь можно посмотреть историю в пределах последнего года. На моей 20H2:
(Get-CimInstance Win32_OperatingSystem).InstallDate 25 апреля 2020 г. 14:58:09 Get-Hotfix -id KB4562830, KB4517245 | ft HotFixID, Description, InstalledOn HotFixID Description InstalledOn -------- ----------- ----------- KB4562830 Update 11.10.2020 0:00:00
В списке нет тумблера, включавшего 1909, потому что впоследствии была установлена весенняя версия 20H1. Другими словами, увидеть его можно только на осенних выпусках. В принципе, то же самое у меня отображает история обновлений в параметрах. Однако у других я там видел странности, поэтому лучше полагаться на команды.
Теперь давайте копнем историю поглубже.
История обновлений до новой версии
Windows хранит историю обновлений до новой версии путем переустановки поверх в разделе реестра HKLM\SYSTEM\Setup
.
Команда PowerShell
С помощью PowerShell несложно вытащить удобный список, приводя дату и время установки к читаемому виду. Эту команду вы легко можете найти в первых строчках Google.
Get-ChildItem -Path HKLM:\System\Setup\Source* | ForEach-Object {Get-ItemProperty -Path Registry::$_} | Select-Object ProductName, ReleaseID, CurrentBuild, @{n="Install Date"; e={([DateTime]'1/1/1970').AddSeconds($_.InstallDate)}} | Sort-Object {[int]($_.CurrentBuild)}
На моем основном ноутбуке история такая:
ProductName ReleaseId CurrentBuild Install Date ----------- --------- ------------ ------------ Windows 10 Pro 1607 14393 02.10.2016 20:37:18 Windows 10 Pro Insider Preview 1607 15014 24.01.2017 0:32:07 Windows 10 Pro Insider Preview 1607 15025 07.02.2017 9:59:44 Windows 10 Pro Insider Preview 1607 15031 09.02.2017 11:27:58 Windows 10 Pro Insider Preview 1607 15042 26.02.2017 17:32:43 Windows 10 Pro Insider Preview 1607 15046 02.03.2017 20:26:16 Windows 10 Pro Insider Preview 1607 15048 04.03.2017 6:35:25 Windows 10 Pro 1703 15055 12.03.2017 1:28:42 Windows 10 Pro 1703 15058 16.03.2017 1:22:48 Windows 10 Pro 1703 15061 19.03.2017 14:26:20 Windows 10 Pro 1703 15063 21.03.2017 19:25:38 Windows 10 Pro Insider Preview 1703 16193 22.05.2017 21:15:24 Windows 10 Pro Insider Preview 1703 16199 26.05.2017 11:38:19 Windows 10 Pro Insider Preview 1703 16215 09.06.2017 8:45:22 Windows 10 Pro Insider Preview 1703 16226 23.06.2017 0:16:18 Windows 10 Pro Insider Preview 1703 16232 29.06.2017 0:40:38 Windows 10 Pro Insider Preview 1703 16237 07.07.2017 22:52:02 Windows 10 Pro Insider Preview 1703 16241 14.07.2017 22:37:27 Windows 10 Pro Insider Preview 1703 16251 28.07.2017 0:42:13 Windows 10 Pro Insider Preview 1703 16257 15.08.2017 1:19:14 Windows 10 Pro Insider Preview 1703 16273 27.08.2017 4:40:56 Windows 10 Pro Insider Preview 1703 16275 29.08.2017 1:17:52 Windows 10 Pro Insider Preview 1703 16278 30.08.2017 22:52:21 Windows 10 Pro Insider Preview 1703 16281 03.09.2017 1:29:49 Windows 10 Pro 1709 16296 25.09.2017 1:00:10 Windows 10 Pro 1709 16299 28.09.2017 1:32:30 Windows 10 Pro 1709 16299 19.10.2017 7:53:46 Windows 10 Pro 1709 16299 03.10.2017 11:30:40 Windows 10 Pro 1803 17133 06.04.2018 8:45:36 Windows 10 Pro 1803 17134 21.04.2018 19:54:34 Windows 10 Pro 1809 17763 03.10.2018 6:56:04 Windows 10 Pro 1909 18363 13.04.2019 20:46:32
Сопоставляя ее со списком версий в Flight Hub, можно четко восстановить хронологический ход событий:
- октябрь 2016: чистая установка стабильной версии 1607, когда ноутбук появился у меня
- февраль 2017: я перешел на инсайдерские сборки в быстром кольце
- сентябрь 2017: я поймал момент, когда быстрое кольцо уравнялось со стабильной версией, и перешел в Release Preview
Вроде все понятно, но читатель блога заметил у себя пару нестыковок, которые и попросил объяснить в письме.
Нестыковки списка
Заметьте, что моя история заканчивается на 1909, хотя я обновился с нее до 20H1 → 20H2. Это происходит потому, что запись текущей версии в реестр осуществляется во время ее обновления до следующей путем переустановки поверх. Другими словами, в списке не будет последней установленной поверх версии. Но я уже объяснил выше, как посмотреть дату ее установки, равно как и дату включения осеннего выпуска.
В списке также отсутствует версия 1903, однако обратите внимание, что 1909 якобы была установлена 13.04.2019. На самом деле – это дата установки 1903, с которой 1909 имеет общую кодовую базу. Последовательность была такой:
- В апреле 2019 года установлена 1903.
- Осенью 2019 года пришло исправление-тумблер, включившее версию 1909.
- В апреле 2020 года поверх 1909 установилась 20H1, после чего в реестре появилась запись об установке 1909, но с датой установки 1903 :)
Да, могло быть и попроще. С другой стороны, эти записи в реестре и не рассчитаны на широкие массы.
Дискуссия
В комментариях покажите результат трех команд из статьи на основном домашнем ПК. Посмотрим, как давно вы не делали чистую установку :)
(Get-CimInstance Win32_OperatingSystem).InstallDate Get-Hotfix -id KB4562830, KB4517245 | ft HotFixID, Description, InstalledOn Get-ChildItem -Path HKLM:\System\Setup\Source* | ForEach-Object {Get-ItemProperty -Path Registry::$_} | Select-Object ProductName, ReleaseID, CurrentBuild, @{n="Install Date"; e={([DateTime]'1/1/1970').AddSeconds($_.InstallDate)}} | Sort-Object {[int]($_.CurrentBuild)}
Для публикации текстовых отчетов используйте pastebin, а картинки заливайте на сторонние хостинги. Затем просто вставляйте ссылку в комментарии.
Если в последние два-три года вы делали чистую установку не по причине покупки нового диска или компьютера, расскажите, что вас к этому побудило.
Владимир
На своем домашнем ноутбуке Lenovo ThinkPad X230 установил Windows 10 в 2015 году поверх Windows 7 по программе бесплатного обновления до Windows 10. С тех пор только ни разу не делал чистой установки, а просто обновлялся поверх предыдущей версии:
https://pastebin.com/kg9jiLi0
Vadim Sterkin
Спасибо, Владимир! Вижу два любопытных момента:
1. Windows 7 в списке нет, хотя кмк должна быть. Я точно видел в интернетах такой сценарий, где первоначальной шла Window 7, а потом уже 10 разных версий.
2. Дата установки пакета 20H2 — 27.09.2020 (что само по себе рановато — у вас Release Preview?), при этом дата установки ОС — 21 октября 2020 г. Как будто 20H2 накатывали снова поверх.
Владимир
1. Повспоминал 2015 год. Вы оказались правы. Мне хотелось установить «чистую» Windows 10, причем таким образом, чтобы Windows 10 была активирована как обновление Windows 7. Покопавшись в интернете, я нашел тему «How to upgrade from Windows 7 without going through the complete upgrade process» на форуме MyDigitalLife. Согласно этой теме я сформировал файл GenuineTicket.xml из Windows 7. После этого я отформатировал весь HDD и запустил установку Windows 10. Во время установки Windows 10 10240 был выбран пункт «I don’t have a product key». После установки Windows GenuineTicket.xml был «скромлен» внось установленной Windows 10, что привело к активации Windows 10.
2. У меня НЕ release preview. И я не могу сказать, почему обновление KB4562830 помечено, как установленное 27.09.2020. Версия 20H2 была установлена 21.10.2020 — об этом говорит дата создания папок C:\$GetCurrent\ и C:\Windows10Upgrade\, а также вывод команды systeminfo.exe (Original Install Date: 21.10.2020, 1:37:42). Обновление было осущестлено путем загрузки Windows 10 Update Assistent (файл Windows10Upgrade9252.exe, дата скачивания — 20.10.2020) с сайта Microsoft по прямой ссылке и запуском этого Помощника по обновлению.
Кстати, я перенес Windows 10 с HDD на SSD (уж не помню, какая версия Windows 10 была тогда установлена). При переносе мне очень помогла ваша статья «Как перенести Windows с HDD на SSD» — я переносил систему, загрузившись с загрузочной флешки с Windows 10 и создав образ системы при помощи Dism.
Спасибо за ваши полезные статьи!
Vadim Sterkin
С обновлением с 7 понятно.
Это и есть один из способов переустановки поверх. В общем, если цель была просто обновиться до 20H2, это было ненужное действие. Достаточно было поставить KB4562830.
Видимо сентябрьская дата установки KB4562830 связана с тем, что оно фактически интегрировано в дистрибутив 20H2, который вы поставили помощником по обновлению.
Это Как перенести Windows с HDD на SSD. Там не dism, а imagex, но по сути dism просто унаследовал функции imagex.
Владимир
Думаю, вы правы, т.к. это обновление (причем тоже якобы установленным в сентябре) присутствует и на рабочем ноуте Lenovo T490, который был обновлен в октябре так же, как и мой домашний ноут — посредством скачивания Ассистента по обновлению (файл Windows10Upgrade9252.exe).
Alexey Golets
https://pastebin.com/6gEU8B9g
Хм, цепочка обновлений со времен релиза 8.0, но самое ранее в списке это 8.1 Pro w/WMC
Vadim Sterkin
Годно! Затрудняюсь объяснить, почему 8 нет в списке. Посмотрим, может найдутся читатели, у которых есть.
DZITs
Дома ноут относительно новый, поэтому приведу вывод команд с рабочих ПК.
Новый ПК: https://pastebin.com/mZHCvPFN
Старый ПК: https://pastebin.com/Adpx1EFs
Скучно даже, до 10-ки на компах и не стояло ничего :-)
Vadim Sterkin
Зато 10 с первого выпуска :)
Olorin
Не знаю, как это интерпретировать. Последняя команда ни чего не выводит.
https://ibb.co/L0VGJPB
Vadim Sterkin
В реестре посмотрите. Если там есть данные, значит, что-то не то с командой. Если нет, то и суда нет. См. также ответ на второй ваш комментарий ниже.
Михаил Прохоров
Основная система в Dev-кольце, и кроме Windows 10 никогда ничего не стояло, но на случай, если в ней что-то пойдет не так, держу резервную систему, которую регулярно обслуживаю из Windows Update, вот она обновлялась со времен Windows 8.1. Касательно сообщения выше, я, к сожалению, не помню уже, до 8.1 обновлялся или начисто ставил.
https://pastebin.com/dFfMwZhf
P.S. Хм, а в 2019 что-то вообще пылью система попросла.
Vadim Sterkin
Если речь о том, что в истории последняя запись — 1909, то скорее всего вы невнимательно читали статью.
Михаил Прохоров
Нет, я про то, что пишу «регулярно обслуживаю из Windows Update», а в 2019 году обновления не ставил вообще (ну и, соответственно, не заходил в нее): последняя запись 1909 09.03.2020
Михаил Прохоров
Еще раз посмотрел на выдачу, заметил интересную «аномалию»:
Windows 10 Pro 1511 10586 28.04.2016 16:35:50
Windows 10 Pro 1511 10586 29.07.2016 9:31:27
Это вторая и третья записи. Я уж, конечно не помню, что там 4 года назад происходило. Есть этому логичное объяснение? Установка поверх той же версии может так должна выглядеть?
Vadim Sterkin
Да
Olorin
А так ставил систему потому, что хотя диски не новые, но сначала системным был один диск, а потом решил сделать системным другой.Решил что мне не нужны старые файлы и параметры. Кстати ставил 20Н1
Vadim Sterkin
Если вы делали чистую установку 20H1, то отсутствие записей в реестре логично. И эту логику я описал в статье, собственно ради этого она и написана…
Дмитрий Павлов
ранее стояла 8.1, до нее — 8, а еще раньше 7
https://pastebin.com/4QaQUPJq
сейчас 2004
Vadim Sterkin
Спасибо. Похоже апгрейд до 8.1 режет все предыдущие записи.
Олег Листопад
Прошел всю цепочку: 7 — 8 — 8.1 — 10
В какой-то момент меня «обрадовал» зелёный экран (как синий, только зелёный, ошибка при обновлении) и пришлось установить начисто 10
Александр [Маздайщик]
Обновлялся ещё с Windows 7, но первой в списке, как и у некоторых других идёт Windows 8.1:
https://pastebin.com/bBhQYtg7
Вторая команда у меня выдала ошибку, мол такого хотфикса нет. Впрочем, это тоже не редкость.
Прямо сейчас ко мне пришло обновление-тумблер на 20H2, но перезагружать машину пока не охота.
Vadim Sterkin
Первое следует из второго :) Когда установите, тумблер будет в списке Get-Hotfix.
Dimitry Gordejev
https://pastebin.com/mutyzSYt
Тот самый...
Удивительно какая длинная история установок и обновлений у меня получилась))
https://pastebin.com/4PZzLkiW
Даже отдаленно вспоминается, как установил впервые Windows 7 RC после Windows Vista
Тот самый...
Так будет чуточку подробнее)))
https://pastebin.com/sgfmAdEJ
Vadim Sterkin
Да вроде ничего удивительного. Разве что много переустановок поверх начиная с 1803, но это уж вам виднее, почему они выполнялись.
Алексей Каманин
Самое «вкусное», что нашёл.
https://pastebin.com/2RhAs3LD