Édition Windows sur des systèmes non anglais

0

J'essaie d'écrire un script PowerShell qui filtre les actions en fonction de l'édition de Windows (Professional, Enterprise, Home, etc.). Je peux utiliser Get-WmiObject Win32_OperatingSystem | Select-Object Caption, mais selon la documentation de MS , cette "chaîne peut être localisée".

Je n'ai pas de systèmes Windows non anglophones à vérifier. Quelqu'un peut-il confirmer si la comparaison avec une chaîne de légende contenant "Enterprise" ou "Home" est suffisante pour des installations dans d'autres langues?

Si elle est localisée, comment peut-on déterminer l'édition en général?

Merci.

Teknowledgist
la source
La chaîne est en effet localisée. Pour qui écrivez-vous ce script exactement? Si vous utilisez Windows 8+, vous pouvez changer la langue système d'installation de n'importe quelle édition de Windows 8+, à l'exception de Single Language. Vous devriez utiliser OperatingSystemSKU et à la GetProductInfoplace
Ramhound

Réponses:

0

Sur la base de ce post, le problème consiste à trouver une source définitive. Le mieux que j'ai pu trouver était cette documentation destinée aux développeurs, qui n'est pas aussi complète que le suggère la réponse du premier lien.

Néanmoins, le code suivant renverra le nom anglais "officiel" de Microsoft pour l'édition en cours de 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

J'espère que ça aide quelqu'un. Je peux modifier le code si quelqu'un trouve une meilleure source en ligne pour la recherche de SKU.

Teknowledgist
la source