4

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

Версия ОС: 1607

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

4 ответа4

1

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

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

0

Нашел этот классный скрипт на 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

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

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

Например,

PS C:\> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
6      1      7601   65536

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

0

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

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 "--------------------------------------------------------"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .