Как получить версию ОС через Powershell с WMI?

3015
j.walt

Кто-нибудь знает, как получить версию ОС, как это:

Версия ОС: 1607

С помощью Get-WmiObject? Не могу найти этот информатин вообще ..

4
По какой причине вы используете Powershell? marijnr 5 лет назад 0
Я должен внедрить эту информацию в информационное программное обеспечение для настольных компьютеров, и я могу сделать это только с помощью файла .ini и запроса WMI. j.walt 5 лет назад 0
Тем не менее, тег powershell все еще неясен: `(Get-Item" HKLM: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion "). GetValue ('ReleaseID')` LotPings 5 лет назад 0
Вы пробовали `(Get-WmiObject Win32_OperatingSystem) .Version`? Sandeep 5 лет назад 0
@Sandeep Version даст вам идентификатор, который Microsoft использует для идентификации своей версии Windows (версия 6.1 используется для Windows 7, версия 6.2 используется для Windows 10, ...) marijnr 5 лет назад 0

4 ответа на вопрос

1
marijnr

Версия ОС хранится в разделе реестра: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ReleaseId . Обычно вы можете прочитать эти ключи с помощью WMI.

LotPings предоставил правильный запрос в комментариях:(Get-Item "HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion").GetValue('ReleaseID')

0
Hyperlite1215

Вот небольшой скрипт, который я написал, чтобы найти информацию о компьютере:

Powershell: получить информацию о компьютере

$Computer = "localhost" $Manufacturer = Get-WmiObject -ComputerName $Computer -class win32_computersystem | select -ExpandProperty Manufacturer $Model = Get-WmiObject -class win32_computersystem -ComputerName $Computer | select -ExpandProperty model $Serial = Get-WmiObject -class win32_bios -ComputerName $Computer | select -ExpandProperty SerialNumber $wmi_os = Get-WmiObject -class Win32_OperatingSystem -ComputerName $Computer | select CSName,Caption,Version,OSArchitecture,LastBootUptime switch($wmi_os.Version){ '10.0.10240'{$wmi_build="1507"} '10.0.10586'{$wmi_build="1511"} '10.0.14393'{$wmi_build="1607"} '10.0.15063'{$wmi_build="1703"} '10.0.16299'{$wmi_build="1709"} '10.0.17134'{$wmi_build="1803"} '10.0.17686'{$wmi_build="1809"} } $wmi_cpu = Get-WmiObject -class Win32_Processor -ComputerName $Computer | select -ExpandProperty DataWidth $wmi_memory = Get-WmiObject -class cim_physicalmemory -ComputerName $Computer | select Capacity | %{($_.Capacity / 1024kb)} $DNName = Get-ADComputer -Filter "Name -like '$Computer'" | select -ExpandProperty DistinguishedName $Boot=[System.DateTime]::ParseExact($($wmi_os.LastBootUpTime).Split(".")[0],'yyyyMMddHHmmss',$null) [TimeSpan]$uptime = New-TimeSpan $Boot $(get-date) Write-Host "------Computer Info for $Computer------------------`r" Write-Host "Hostname from WMI`: $($wmi_os.CSName)" Write-Host "$DNName" Write-Host "$Manufacturer $Model SN`:$Serial" Write-Host "$($wmi_os.Caption) $wmi_build $($wmi_os.OSArchitecture) $($wmi_os.Version)" Write-Host "CPU Architecture: $wmi_cpu" Write-Host "Memory: $wmi_memory" Write-Host "Uptime`: $($uptime.days) Days $($uptime.hours) Hours $($uptime.minutes) Minutes $($uptime.seconds) Seconds" Write-Host "--------------------------------------------------------" 
0
Ketanbhut

Нашел этот классный скрипт на TechNet Gallary: Get-WindowsVersion

Вот как это выглядит:

[19JUN] :>Get-WindowsVersion -ComputerName ktpc  ComputerName Productname WindowsVersion WindowsBuild ProductID InstallTime ------------ ----------- -------------- ------------ --------- ----------- KTPC Windows 10 Enterprise 1803 10.0.17134.112 00329-10280-00000-AA451 5/22/2018 8:10:15 AM 

Он использует тот же «RealseID», что и другие, предложенные для получения этого значения. Тем не менее, это хорошее усилие и готово к использованию.

0
Tim

Это не через WMI, но ответ Джеффа Меркадо может в любом случае помочь;

Поскольку у вас есть доступ к библиотеке .NET, вы можете получить доступ к OSVersionсвойству System.Environmentкласса, чтобы получить эту информацию. Для номера версии есть Versionсвойство.

Например,

PS C:\> [System.Environment]::OSVersion.Version  Major Minor Build Revision ----- ----- ----- -------- 6 1 7601 65536 

Подробности версий Windows можно найти здесь .