Основываясь на этом посте, проблема заключается в поиске окончательного источника. Лучшее, что я смог найти, была эта документация для разработчиков, которая не настолько полная, как можно было бы предположить в ответе по первой ссылке.
Тем не менее, следующий код возвратит «официальное» имя Microsoft на английском языке для текущей работающей версии Windows:
$page = Invoke-WebRequest -uri 'https://msdn.microsoft.com/en-us/library/ms724358.aspx' $TableText = ($page.AllElements | Where-Object {$_.tagname -eq 'tbody' -and $_.innertext -like 'valuemeaning*'} | Select-Object -ExpandProperty innertext) -split "`r`n" $CSV = $TableText | Where-Object {$_ -match '^0x0.*'} | ForEach-Object {$_ -replace "^(0x0[0-9A-F]+) ",'$1,'} | ForEach-Object {"$([convert]::ToInt16($_.split(',')[0],16))" + ',' + $_.split(',')[-1]} $Editions = ConvertFrom-Csv $CSV -Header 'SKU','Name' $ThisOS = (Get-WmiObject Win32_OperatingSystem).operatingsystemsku $Editions | Where-Object {$_.SKU -eq $ThisOS} |Select-Object -ExpandProperty Name
Надеюсь, это кому-нибудь поможет. Я могу изменить код, если кто-то найдет лучший онлайн-источник для поиска SKU.