edição do Windows em sistemas não ingleses

0

Estou tentando escrever um script do PowerShell que filtre ações com base na edição do Windows (Professional, Enterprise, home, etc.). Posso usar Get-WmiObject Win32_OperatingSystem | Select-Object Caption , mas de acordo com a documentação do MS , essa "string pode ser localizada".

Não tenho sistemas Windows em idioma não inglês para verificar. Alguém pode confirmar se a comparação com uma sequência de legendas que contém "Empresa" ou "Página inicial" é suficiente em outras instalações de idiomas?

Se estiver localizado, como a edição pode ser geralmente determinada?

Obrigado.

    
por Teknowledgist 04.06.2018 / 14:56

1 resposta

0

Com base no este post , o problema é encontrar um produto definitivo fonte. O melhor que pude encontrar foi esta documentação do desenvolvedor que não é tão completa quanto a resposta no primeiro link sugeriria que deveria ser.

No entanto, o código a seguir retornará o nome "oficial" do idioma inglês da Microsoft para a edição atual em execução do 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

Espero que isso ajude alguém. Eu posso modificar o código se alguém encontrar uma fonte online melhor para pesquisa de SKU.

    
por 11.06.2018 / 16:24