{"id":3170,"date":"2020-08-07T23:25:18","date_gmt":"2020-08-07T21:25:18","guid":{"rendered":"https:\/\/www.mariotti.de\/?p=3170"},"modified":"2020-08-07T23:25:18","modified_gmt":"2020-08-07T21:25:18","slug":"aendern-der-windows-10-betriebssystemsprache-und-spracheinstellungen-mittels-powershell","status":"publish","type":"post","link":"https:\/\/dev.mariotti.de\/?p=3170","title":{"rendered":"\u00c4ndern der Windows 10 Betriebssystemsprache und Spracheinstellungen mittels PowerShell"},"content":{"rendered":"<p>PowerShell Script zum \u00c4ndern der Windows 10 Betriebssystemsprache und Spracheinstellungen f\u00fcr Benutzer incl. Auswahldialog auf Basis der installierten Sprachpakete (Language Packs)<\/p>\n<pre><code class=\"language-powershell\"># Get list of installed language packs\n$OSInfo = Get-WmiObject -Class Win32_OperatingSystem\n$languagePacks = $OSInfo.MUILanguages\n\n# Helper function to get the GeoID from Cluture\nFunction Get-GeoId($Name='*')\n{\n    $cultures = [System.Globalization.CultureInfo]::GetCultures('InstalledWin32Cultures')\n    foreach($culture in $cultures)\n    {\n       try{\n           $region = [System.Globalization.RegionInfo]$culture.Name\n           if($region.Name -like $Name)\n           {\n                $region.GeoId\n           }\n       }\n       catch {}\n    }\n}\n\n# Show select dialog with installed language packs\nFunction Show-LanguageSelectDialog {\n    Add-Type -AssemblyName System.Windows.Forms\n    Add-Type -AssemblyName System.Drawing\n    $form = New-Object System.Windows.Forms.Form\n    $form.Text = 'Select a Computer'\n    $form.Size = New-Object System.Drawing.Size(300,200)\n    $form.StartPosition = 'CenterScreen'\n    $OKButton = New-Object System.Windows.Forms.Button\n    $OKButton.Location = New-Object System.Drawing.Point(75,120)\n    $OKButton.Size = New-Object System.Drawing.Size(75,23)\n    $OKButton.Text = 'OK'\n    $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK\n    $form.AcceptButton = $OKButton\n    $form.Controls.Add($OKButton)\n    $CancelButton = New-Object System.Windows.Forms.Button\n    $CancelButton.Location = New-Object System.Drawing.Point(150,120)\n    $CancelButton.Size = New-Object System.Drawing.Size(75,23)\n    $CancelButton.Text = 'Cancel'\n    $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel\n    $form.CancelButton = $CancelButton\n    $form.Controls.Add($CancelButton)\n    $label = New-Object System.Windows.Forms.Label\n    $label.Location = New-Object System.Drawing.Point(10,20)\n    $label.Size = New-Object System.Drawing.Size(280,20)\n    $label.Text = 'Please select a computer:'\n    $form.Controls.Add($label)\n    $listBox = New-Object System.Windows.Forms.ListBox\n    $listBox.Location = New-Object System.Drawing.Point(10,40)\n    $listBox.Size = New-Object System.Drawing.Size(260,20)\n    $listBox.Height = 80\n    foreach ($item in $languagePacks)\n    {\n        [void] $listBox.Items.Add($item)\n           \n    }\n    $form.Controls.Add($listBox)\n    $form.Topmost = $true\n    $result = $form.ShowDialog()\n    if ($result -eq [System.Windows.Forms.DialogResult]::OK)\n    {\n        $x = $listBox.SelectedItem\n        $x\n    }\n}\n$Culture = Show-LanguageSelectDialog\n\n# Change language to selection\nSet-Culture -CultureInfo $Culture\nSet-WinHomeLocation $(Get-GeoId($Culture))\nSet-WinUserLanguageList $Culture -force\n\nWrite-host \"Please logoff and logon again to activate the selected language\"\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>PowerShell Script zum \u00c4ndern der Windows 10 Betriebssystemsprache und Spracheinstellungen f\u00fcr Benutzer incl. Auswahldialog auf Basis der installierten Sprachpakete (Language Packs)<\/p>\n","protected":false},"author":2,"featured_media":2425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,36],"tags":[],"class_list":["post-3170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","category-windows"],"_links":{"self":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3170"}],"version-history":[{"count":0,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3170\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/media\/2425"}],"wp:attachment":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}