Время на прочтение5 мин
Количество просмотров28K
Как же определить версию Windows, работающую в корпоративном окружении?
Вопрос кажется простым, правда?
Microsoft позволяет определить номер версии Windows различными способами:
- Существуют значения в реестре, которым отчаянно не хватает документации.
- Есть множество командлетов PowerShell, вызовов Windows API и т. п.
- Также есть варианты для конечного пользователя, например, команда
winver
, которая вызывает всплывающее окно с версией Windows. - И много других способов…
Разобраться во всём этом вам поможет наш пост.
Существует множество инструментов, позволяющих определить, какая версия Windows запущена у ваших клиентов, например, SCCM и PDQ. В этом посте мы рассмотрим встроенные способы определения версии Windows.
▍ Реестр
Для определения запущенной в системе версии Windows можно использовать следующие значения реестра:
Примечание: перечисленные в таблице значения официально не задокументированы Microsoft (см. ниже).
Предупреждение
Microsoft не сообщала об изменениях в этих значениях реестра, не документировала их официальную поддержку и не гарантировала, что в будущем не появится критических изменений. Из-за этого описанными выше ключами реестра пользоваться бывает иногда неудобно, учитывая непостоянство изменений этих ключей, вносимых Microsoft в прошлом. Примеры:
- ReleaseID не рекомендуется к использованию, начиная с версии 21H1. ReleaseID для 21H1 остаётся равным 2009.
- Server 2012R2 не имеет ReleaseID и DisplayVersion (они пока не были добавлены в Windows)
- Server 2016 имеет ReleaseID (1607), но не имеет DisplayVersion
- Server 2019 имеет ReleaseID (1809), но не имеет DisplayVersion
▍ PowerShell
Ниже приведено несколько примеров того, как можно использовать PowerShell, чтобы определить версию Windows, которая работает в системе:
# При помощи класса System.Environment
[System.Environment]::OSVersion
# При помощи класса CIM Win32_OperatingSystem
Get-CimInstance Win32_OperatingSystem
# При помощи исполняемого файла systeminfo
systeminfo.exe /fo csv | ConvertFrom-Csv
# При помощи командлета Get-ComputerInfo
# ПРИМЕЧАНИЕ: начиная с 21H1 OsHardwareAbstractionLayer не рекомендуется к использованию
Get-ComputerInfo | Select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
▍ Windows API Call
Единственный поддерживаемый (задокументированный) систематический способ определения версии Windows — при помощи вызова Windows API класса AnalyticsInfo. Это можно сделать через PowerShell:
<#
Класс AnalyticsInfo - задокументированный способ отслеживания версии ОС. Он возвращает
строковое значение. Формат этой строки не задокументирован, и нельзя полагаться
на определённое значение. Эти значения можно использовать только чтобы отличать
одну версию ОС от другой.
https://docs.microsoft.com/uwp/api
/windows.system.profile.analyticsversioninfo.devicefamilyversion
Этот API недоступен на Server Core
#>
$AnalyticsInfo = [Windows.System.Profile.AnalyticsInfo,Windows.System.Profile,ContentType=WindowsRuntime]
$VersionInfo = $AnalyticsInfo.GetMember( 'get_VersionInfo' )
$AnalyticsVersionInfo = $VersionInfo.Invoke( $Null, $Null )
# На моей тестовой машине этот код возвращает `2814751015109593`
$AnalyticsVersionInfo.DeviceFamilyVersion
<#
Строго говоря, строку *можно* парсить, если вам любопытно, что в ней,
хотя этого делать *нельзя*
https://stackoverflow.com/questions/31783604/windows-10-get-devicefamilyversion
#>
$v = [System.Int64]::Parse( $AnalyticsVersionInfo.DeviceFamilyVersion )
$v1 = ( $v -band 0xFFFF000000000000l ) -shr 48
$v2 = ( $v -band 0x0000FFFF00000000l ) -shr 32
$v3 = ( $v -band 0x00000000FFFF0000l ) -shr 16
$v4 = $v -band 0x000000000000FFFFl
# На моей тестовой машине этот код возвращает `10.0.19043.985`
[System.Version]::Parse( "$v1.$v2.$v3.$v4" )
<#
Не опубликовано *никакого* способа декодирования, позволяющего преобразовать
какое-то из приведённых выше значений в удобную для отображения версию,
например `21H1`
Показанная ниже альтернатива доступна только в последних версиях ОС,
начиная с Azure Stack HCI, версии 20H2
#>
Get-ComputerInfo -Property 'osDisplayVersion'
▍ Варианты для конечного пользователя
В документации Microsoft перечислено несколько команд, которые конечные пользователи могут применять для определения запущенной версии Windows. Например, чтобы выяснить версию Windows, можно использовать команду winver
или меню Параметров Windows. Эти способы предназначаются больше для конечных пользователей, чем для масштабного определения версии системы. Ниже показаны примеры:
▍ Почему это важно
После определения запущенной в системе версии Windows можно использовать эту информацию выполнения детерминированных действий: обновлений Windows, установки патчей и т. п. Например:
Можно запросить значение реестра DisplayVersion
(см. раздел «Реестр» выше), чтобы определить запущенную версию Windows. Затем можно задать перечисленные ниже значения реестра, чтобы сообщить Windows, какая версия должна быть запущена в системе. При помощи трёх ключей реестра вы полностью контролируете то, до какой версии Windows ваши системы будут пытаться обновиться!
Эти значения реестра можно задавать или напрямую, или через групповую политику.
▍ Куда двигаться дальше
Хотя вам необязательно управлять версиями Windows, запущенными на компьютерах компании, ей было бы ценно знать, какие это версии Windows. По крайней мере, потому, что Microsoft регулярно прекращает поддержку разных версий Windows.
Стоит также заметить, что показанные выше примеры — это неполный список способов определения версии Windows, однако он полезен для людей, управляющих окружением Windows. Эти способы оказались полезными для меня при устранении проблем, задании политик и т. п. Надеюсь, вам они тоже пригодятся.
Кроме того, ситуация с управлением версиями Windows постоянно меняется, поэтому я напишу ещё один пост, когда Microsoft перестанет рекомендовать перечисленные здесь способы.
Дополнительные ссылки
- Microsoft nixes update deferral settings, but gives us a TargetReleaseVersionInfo
- Windows 10 Version History
- Windows Server Versions.
Автор |
|
|||
---|---|---|---|---|
[ТС] |
Заголовок сообщения: Как по ключу активации узнать версию Windows ? Добавлено: 27 мар 2019, 20:30 |
|||
Сообщения: 111 |
Например, узнаю ключ из bios спомощью утилиты RecoverKeys
|
|||
|
||||
Uicholi |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 27 мар 2019, 20:46 |
Сообщения: 664 |
Если собираешься ставить 10 , то с сайта мелкософта качается утилита , которая делает флэшку , так с той флэхи само все подхватывается . Как в 8 , 8.1 , не знаю. |
|
|
ddr7 |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 27 мар 2019, 20:52 |
Сообщения: 111 |
Я собираюсь ставить ОС, которая точно соответствует ключу активации, вшитому в биос.
|
|
|
felix2604 |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 27 мар 2019, 21:07 |
Сообщения: 1585 |
В чём смысл изобретать второй велосипед? |
|
|
salexa |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 27 мар 2019, 21:09 |
Сообщения: 78 |
PIDKey Lite — утилита работает с ключами продуктов MS (Windows, Office и некоторые др.), портативная, в 32- и 64-битом исполнении, подробное описание в *.doc внутри архива. QuickStart Guide
У вас нет доступа для просмотра вложений:
|
|
|
ddr7 |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 28 мар 2019, 19:28 |
Сообщения: 111 |
felix2604 писал(а): В чём смысл изобретать второй велосипед? Я правильно понимаю алгоритм действий ?
|
|
|
felix2604 |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 28 мар 2019, 21:33 |
Сообщения: 1585 |
Да, правильно, при подключении к интернету нажимаете кнопку «Устранение неполадок активации» и получаете желаемую ОС версии про |
|
|
Sergej |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 28 мар 2019, 21:36 |
Сообщения: 1931 |
ddr7, media creation tool слепил мне флэху со всеми версиями десятки в вариантах 32/64 — нужные галочки проставил — и теперь при лицензии в BIOS только битность выбираю. felix2604 писал(а): при подключении к интернету нажимаете кнопку «Устранение неполадок активации» А зачем, если абсолютно легально можно?
|
|
|
felix2604 |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 28 мар 2019, 21:45 |
Сообщения: 1585 |
Sergej, На случай если автоматом не подхватывает ключ. Я готовые образы с помощью ATI раскатываю, обычно активация проходит сразу при подключении к интернету. |
|
|
SimbA |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 28 мар 2019, 23:16 |
Сообщения: 203 |
Сообщение не в тему ddr7 писал(а): Как по ключу активации узнать версию Windows ? Загуглить |
|
|
Ciber SLasH |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 29 мар 2019, 10:57 |
Сообщения: 7766 |
Программы для просмотра ключей (вшитых в Bios и установленных в систему):
У вас нет доступа для просмотра вложений:
|
|
|
Ciber SLasH |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 14:53 |
Сообщения: 7766 |
Рано закрыл тему. |
|
|
Sergej |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 14:59 |
Сообщения: 1931 |
Ciber SLasH писал(а): Может кто знает программу, которая сможет по ключу узнать версию WinXP/Vista? На наклейке есть ещё последовательность знаков вида X12-51827 , по ней погуглить есть смысл..
|
|
|
Ciber SLasH |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 15:02 |
Сообщения: 7766 |
Sergej |
|
|
Sergej |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 15:16 |
Сообщения: 1931 |
Ciber SLasH, не скажу.. послать туда https://www.solidfiles.com/folder/bd7165a0d4/ копаться в KMS — не мой способ (кстати, на здешний архив Avast ругается), у меня наклеек много.. если что-то древнее, а COA нету — шлёп новую
|
|
|
Ciber SLasH |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 16:30 |
Сообщения: 7766 |
|
|
|
salexa |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 18:22 |
Сообщения: 78 |
Ciber SLasH писал(а): кто знает программу, которая сможет по ключу узнать версию WinXP/Vista? Так а ранее упомянутый PIDKey в этом плане чем не угодил? PIDKey&WinXP: |
|
|
Ciber SLasH |
Заголовок сообщения: Re: Как по ключу активации узнать версию Windows ? Добавлено: 30 мар 2019, 22:32 |
Сообщения: 7766 |
Получилось с PIDKey lite. |
|
|
Два самых простых способа узнать редакцию (выпуск) для которой предназначен ключ продукта Microsoft
1. Загрузите и запустите утилиту PIDKey Lite (пароль: pcportal). Скопируйте проверяемый ключ\и в буфер обмена, зажмите Shift и кликните в программе по полю для ввода ключа, а затем по кнопке ► слева.
В строке Edition ID будет указана редакция системы, в строке Channel — канал распространения, в Activ. Count — кол-во возможных активаций MAK (применимо для корпоративных лицензий), а в Block Key Base — действителен ли ключ, или был заблокирован Microsoft.
2. Скачайте и запустите утилиту Microsoft PID Checker (страница программы), вставьте свой ключ в верхнее поле, во втором выберите продукт и нажмите на кнопку Check. Если необходимо проверить оставшееся кол-во активаций MAK — поставьте соответствующую галочку перед проверкой.
В строке Edition Type будет указана редакция системы, в строке License Channel — канал распространения, а в MAK Count — кол-во возможных активаций MAK (применимо для корпоративных лицензий).
Не секрет, что операционная система от Microsoft представлена огромным количеством версий. Более того, каждое поколение имеет несколько редакций под различные задачи.
К примеру, если вы решите купить ключ Windows 8, то перед вами будет несколько вариаций:
- одноязыковая;
- базовая;
- профессиональная;
- для планшетов;
- корпоративная.
Само собой, у каждой из них свой набор компонентов и, само собой, свой инсталлятор. В связи с этим нередко пользователи, имеющие лицензионное ПО, сталкиваются с проблемой определения версии. К примеру, у них был утерян диск и остался только код активации. И они хотят выяснить, как узнать версию Windows 8 по ключу, чтобы загрузить подходящий дистрибутив. Можно ли это как-то осуществить?
Способы определения версии Windows
К счастью, способы реализовать подобное есть, хоть и не очень много. Если есть какая-либо информация о дистрибутиве, например, номер, то это может помочь. Например, Windows 8.1 SL – это версия для одного языка. А Pro – это профессиональная для бизнеса. Но что делать, если этого нет, как по ключу определить версию Windows 8 и только по нему? Самый простой и действенный способ – это обратиться в службу поддержки компании Microsoft. Для этого позвоните по телефону Центра активации, дождитесь ответа оператора, озвучьте ему свою проблему. Он попросит вас продиктовать код активации, по которому и определит редакцию подходящей операционной системы.
Если позвонить возможности нет, то можно сделать следующее. Скачайте с официального сайта дистрибутив для базовой версии операционной системы, установите ее, а после осуществите обновление до необходимой редакции и активируйте, используя product key. Однако такой способ не универсален, ибо существуют различия между версиями и поколениями ОС. Поэтому его стоит оставить на крайний случай.
Определение версии установленной Windows 8
Не менее часто пользователей интересует то, как определить версию ОС, которая уже установлена на ПК. Например, чтобы узнать, есть ли возможность загрузить обновления или перейти на более новую систему. В таком случае определить, какая Винда инсталлирована на ПК, намного проще. Для этого достаточно нажать правую клавишу на ярлыке компьютера и выбрать пункт «Свойства». Здесь вы получите базовую информацию о версии. Если нужна более подробная информация, например, номер редакции, то выполните следующие шаги:
- нажмите Win + R;
- введите «winver»;
- нажмите Ок.