close
On-PremisesScripting, PowerShellSharePoint 2016

Bevorzugte Sprache in Benutzerprofilen richtig setzen

Kinderhand hält Spielzeugflugzeug in die Luft - Innovation
Kinderhand hält Spielzeugflugzeug in die Luft - Innovation

Im Zuge eines Kundenprojektes auf Basis SharePoint 2016 hatten wir die Anforderung die Sprachumschaltung für die Endbenutzer zu vereinfachen. Idee war, im Header die Flaggen von Österreich und Großbritannien anzeigen zu lassen und die Sprache durch einen Klick auf die jeweilige Flagge auf Deutsch oder Englisch umzuschalten.

Eigentlich keine besonders ausgefallene oder schwierige Übung möchte man denken. Die Sprachumschaltung selbst sollte als JavaScript implementiert werden und das Vorbefüllen der verfügbaren Sprachen (de-AT, en-GB) wird mittels Powershell durchgeführt. Also schnell ein Powershell Script erstellt das alle Benutzerprofile durchiteriert und wenn das Feld SPS-MUILanguages leer ist folgende Befehle ausführen:

$profile[„SPS-MUILanguages“].Value = „en-GB,de-AT“
$profile.Commit()

Ein kurzer Blick in das Profil eines Benutzer in der Central Administration zeigt den Erfolg meines Scripts. Dachte ich mir 😉

Als mein Kollege der das Frontend der Applikation anpasste die beiden Flaggen-Buttons inklusive JavaScript implementiert hatte die Sprachumschaltung ausprobieren wollte, viel ihm jedoch auf, dass er keine Sprachen vom User Profile Service für den angemeldeten Benutzer zurückbekam.

Nachdem wir einige andere Fehlerquellen ausgeschlossen hatten warfen wir einen Blick auf die Profilseite des Benutzers und editierten dessen Profil über die GUI. Zur unserer Überraschung stellte sich heraus, dass die Language Preferences dort leer waren.

Und das obwohl sie in der Central Administration als befüllt dargestellt wurden. Sehr eigenartig!

Nach etwas intensiverer Recherche fanden wir dann ein weiters User Profile Property das ebenfalls gesetzt werden muss, um das Umschalten für den Benutzer zu ermöglichen. Der Name des Properties ist SPS-RegionalSettings-Initialized und es muss auf True gesetzt werden. Also einfach die Befehle auf folgendes erweitert.

$profile[„SPS-MUILanguages“].Value = „en-GB,de-AT“
$profile[„SPS-RegionalSettings-Initialized“].Value = $true
$profile.Commit()

Nun funktionierte die Umschaltung problemlos.

Vielleicht konnte ich dem einen oder anderen von euch mit diesem kleinen Tipp weiterhelfen 🙂 .

LG
Markus

Leave a Response

Diese Seite ist durch reCAPTCHA und Google geschütztDatenschutz-Bestimmungen UndNutzungsbedingungen anwenden.