Powershell - Probleme bei Scipt zum Sprachenwechsel
Hallo liebe Community
Ich bin noch ziemlich unerfahren mit der Powershell, muss aber ein Script basteln, welches die folgenden Aufgaben erfüllt:
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
Also hier das Script was ich geschrieben habe:
Und hier die Ausgabe des Scripts:
Vielleicht mag mir ja jemand einen Tip geben ?
Lieben Dank
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665080
Url: https://administrator.de/contentid/665080
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Moin,
Die Zeichen hinter -NewName sehen aber komisch aus. Da stimmt was mit dem Zeichensatz nicht oder da steht kein Leerzeichen, sondern irgend etwas anderes.
Und recht hat die Powershell. Den Pfad, den Du angibst, gibt es nicht.
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
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