darktrinity
Goto Top

Powershell - Probleme bei Scipt zum Sprachenwechsel

Hallo liebe Community face-smile

Ich bin noch ziemlich unerfahren mit der Powershell, muss aber ein Script basteln, welches die folgenden Aufgaben erfüllt:
  • Ändern der Sprache auf dem Desktop von Windows 10 Pro von holländisch nach deutsch
  • Ändern der Sprache in Acrobat Reader (Windows 10 Pro) von holländisch nach deutsch
  • Ändern der Sprache in Google Chrome (Windows 10 Pro) von holländisch nach deutsch

Herangehensweise:
Soweit ich geprüft habe, kann die Sprache in Chrome über eine Config File geändert werden und die von Adobe über einen Registry Schlüssel

Das Script funktioniert nur teilweise, es erzeugt Fehlermeldungen. Auch mag Google Chrome die modifizierte Config File nicht annehmen, diese wird durch Chrome in "Preferences.bad" umbenannt. Das ist aber nicht das Kernproblem, hier werde ich mal 2 Referenzdatein digital vergleichen um die genauen Unterschiede zu sehen.

Es geht mir hauptsächlich um die Fehlermeldungen des Powershells face-smile

Also hier das Script was ich geschrieben habe:
# Author line
Write-Host -ForegroundColor Red "Changing language by PoerShell, written by ##me## (##company i work 4##)"  

#os - change the language of windows itself
Write-Host -ForegroundColor Yellow "Changing now the language of Windows:"  
Set-WinSystemLocale de-DE
Set-WinUserLanguageList de-DE 
Set-WinUILanguageOverride -Language de-DE
Write-Host -ForegroundColor Green "Change of language for Windows done"  

## chrome - change the language of chrome
# create a backup of C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Preferences
Write-Host -ForegroundColor Yellow "Changing now the language of Chrome:"  
Write-Host "Backing up Chrome preference file in Downloads- Folder..."  
Copy-Item -Path 'C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Preferences' -Destination 'C:\Users\user\Downloads'  
Rename-Item -Path 'C:\Users\user\Downloads\Preferences' -NewName 'C:\Users\user\Downloads\Preferences.chromebackup'  
# modify C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Preferences
Write-Host "Now changing the Chrome language..."  
$content = Get-Content -Path 'C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Preferences'  
$newContent1 = $content -replace '"nl-NL"', '"de-DE"'  
$newContent2 = $newcontent1 -replace '"nl"', '"de"'  
$newContent2 | Set-Content -Path 'C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Preferences'  
Write-Host -ForegroundColor Green "Change of language for Chrome done"  
Write-Host -ForegroundColor Yellow "Changing now the language of Adobe"  

#adobe
## backup registry
Write-Host "Backing up RegistryCodes of Adobe into Downloads- Folder..."  
reg export 'HKCU\Software\ADOBE' 'C:\Users\user\Downloads\AdobeBackupReg.reg'  
Write-Host "Now changing RegistryCodes of Adobe..."  
#Amend registry codes
Set-Itemproperty -path 'HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\current' -Name 'Default' -value 'locale\de_de\rdlang32.nld'  
Set-Itemproperty -path 'HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\next' -Name 'Default' -value 'locale\de_de\rdlang32.nld'  
Write-Host -ForegroundColor Green "Change of language for Adobe done"  
# end
Write-Host -ForegroundColor Red "Please reboot Laptop :-)"  

Und hier die Ausgabe des Scripts:
PS C:\users\user\Downloads> powershell -ExecutionPolicy Bypass -File lang2de.ps1
Changing language by PoerShell, written ########### (#########)
Changing now the language of Windows:

Bestätigung
Vorgang fortsetzen?
[J] Ja  [N] Nein  [H] Anhalten  [?] Hilfe (Standard ist "J"): j  
Change of language for Windows done
Changing now the language of Chrome:
Backing up Chrome preference file in Downloads- Folder...
Rename-Item : Das angegebene Ziel kann nicht umbenannt werden, da es einen Pfad- oder Gerätenamen darstellt.
In C:\users\user\Downloads\lang2de.ps1:14 Zeichen:1
+ Rename-Item -Path 'C:\Users\user\Downloads\Preferences' -NewName 'C: ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand

Now changing the Chrome language...
Change of language for Chrome done
Changing now the language of Adobe
Backing up RegistryCodes of Adobe into Downloads- Folder...
Die Datei "C:\Users\user\Downloads\AdobeBackupReg.reg" ist bereits vorhanden. Überschreiben? (J/N)j  
Der Vorgang wurde erfolgreich beendet.
Now changing RegistryCodes of Adobe...
Set-Itemproperty : Der Pfad "C:\users\user\Downloads\HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\current" kann nicht  
gefunden werden, da er nicht vorhanden ist.
In C:\users\user\Downloads\lang2de.ps1:29 Zeichen:1
+ Set-Itemproperty -path 'HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Languag ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\users\user\Do...anguage\current:String) [Set-ItemProperty], ItemNotFo
   undException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand

Set-Itemproperty : Der Pfad "C:\users\user\Downloads\HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\next" kann nicht  
gefunden werden, da er nicht vorhanden ist.
In C:\users\user\Downloads\lang2de.ps1:30 Zeichen:1
+ Set-Itemproperty -path 'HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Languag ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\users\user\Do...C\Language\next:String) [Set-ItemProperty], ItemNotFo
   undException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand

Change of language for Adobe done
Please reboot Laptop :-)


Vielleicht mag mir ja jemand einen Tip geben ?

Lieben Dank face-smile

Content-ID: 665080

Url: https://administrator.de/contentid/665080

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

SlainteMhath
SlainteMhath 24.03.2021 um 12:31:47 Uhr
Goto Top
Moin,

dei Regsitry sprichst du mit

Set-Itemproperty -path 'HKCU:\SOFTWARE\....  

an.

lg,
Slainte
erikro
erikro 24.03.2021 aktualisiert um 18:04:03 Uhr
Goto Top
Moin,

Zitat von @DarkTrinity:

Rename-Item : Das angegebene Ziel kann nicht umbenannt werden, da es einen Pfad- oder Gerätenamen darstellt.
> In C:\users\user\Downloads\lang2de.ps1:14 Zeichen:1
> + Rename-Item -Path 'C:\Users\user\Downloads\Preferences' -NewName 'C: ...  
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
>     + FullyQualifiedErrorId : Argument,Mic

Die Zeichen hinter -NewName sehen aber komisch aus. Da stimmt was mit dem Zeichensatz nicht oder da steht kein Leerzeichen, sondern irgend etwas anderes.

Set-Itemproperty : Der Pfad "C:\users\user\Downloads\HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\current" kann nicht  
> gefunden werden, da er nicht vorhanden ist.
> In C:\users\user\Downloads\lang2de.ps1:29 Zeichen:1
> + Set-Itemproperty -path 'HKCU\SOFTWARE\ADOBE\Acrobat Reader\DC\Languag ...  
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : ObjectNotFound: (C:\users\user\Do...anguage\current:String) [Set-ItemProperty], ItemNotFo
>    undException
>     + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand
> 

Und recht hat die Powershell. Den Pfad, den Du angibst, gibt es nicht.

HKCU:\SOFTWARE\ADOBE\Acrobat Reader\DC\Language\current

So muss das aussehen. Falls Du den Unterschied nicht siehst: Hinter HKCU muss ein Doppelpunkt stehen. In der Powershell sind die Hauptschüssel Provider. Deshalb müssen sie wie z. B. die Provider C oder D mit einem Doppelpunkt gekennzeichnet werden. Und weil der fehlt, ist das für die PS eine relative Pfadangabe. Deshalb stellt sie den aktuellen Pfad voran.

hth

Erik