Поиск номера билда операционной системы Windows в WMI

На сайте TechNet есть регулярно обновляющаяся статья с информацией о текущих релизах и номерах сборок (builds) операционной системы Windows 10.
https://technet.microsoft.com/en-us/windows/release-info.aspx
Например, так сказано, что билд 10240.16405 был выпущен 29 июля 2015 г. и соответствует версии 1507 — RTM, хотя и с несколькими изменениями, внесенными обновлением KB 3074683.

Здесь 10240 указывает на версию Windows 10, а именно — 1507 RTM, а 16405 сообщает о конкретной сборке операционной системы. Тут стоит сказать, что это число (16405 в данном случае) указывает на сборку, которая была установлена изначально, т.е. при установке хотфиксов этот номер не меняется.

Тем не менее, возник вопрос, как можно узнать полную версию установленной операционной системы посредством PowerShell.

Понятно, что, используя GUI узнать эту информацию труда не составит (например, winver.exe), хотя опять же в RTM-версии было указано только число 10240, о версии билда там не говорилось.

Давайте для этого воспользуемся WMI. Понятно, что нам нужно найти определенный класс, одно из свойств которого содержит в себе значение билда операционной системы.

Как нам это узнать?

В PowerShell версии 3 появился модуль CimCmdlets, содержащий в себе командлеты для работы с классами WMI.

Среди этих командлетов есть Get-CimClass. Одним из его параметров является PropertyName, что дает нам возможность поиска классов, обладающих свойством, имя которого содержит нужные нам символы.

Можно предположить, что в имени свойства, содержащем значение номера билда операционной системы должно быть слово build.

Вот об этом мы и спросим командлет Get-CimClass.

Get-CimClass -PropertyName *build*

Эта строка вернет нам несколько классов.

Давайте слегка уменьшим объем вывода, запросив только динамические классы (в противоположность абстрактным).

Get-CimClass -PropertyName *build* -QualifierName dynamic

Итак, нам есть из чего выбирать.
Можно предположить, что в данном случае нам стоит обратить внимание на классы Win32_OperatingSystem и Win32_WMISetting.

Get-CimInstance -ClassName Win32_OperatingSystem
Get-CimInstance -ClassName Win32_WMISetting

В первом случае, при запросе класса Win32_OperatingSystem мы видим, что нам доступно свойство BuildNumber, которое, однако, содержит только часть нужной нам информации.
Но во втором случае, в свойстве BuildVersion класса Win32_WMISetting мы видим полное значение билда операционной системы.


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s