Azure AD Connect - Custom Sync Rule for preferredLanguage

Hallo zusammen,

Ich habe kürzlich von einem Kunden die Anforderung erhalten, Sync Rules für AAD connect zu erstellen, welche das Setting vom Active Directory in einen vom Azure Active Directory unterstützten wert übersetzt.

How to set language and region settings for Office 365

https://docs.microsoft.com/en-us/office365/troubleshoot/access-management/set-language-and-region

 

Automatisieren der Office 365 Language Settings

https://www.ioz.ch/blog/automatisieren-der-o365-language-settings/


Dies war die Ausgangslage beim Kunden

Active Directory Azure Active Directory
DE ch-DE
EN en-US
BE nl-BE

Ich schaue mir mal meinen Testuser im Azure Active Directory an

Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*

Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*



Auf dem lokalen User im Active Directory ist nichts gesetzt.


Passe ich mal auf "BE" an


Auf dem AAD Connect Server stosse ich einen Delta Sync an

Import-Module ADSync

Start-ADSyncSyncCycle -PolicyType Delta



Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*

Get-AzureADUser -SearchString m.muster@icewolf.ch | fl *lang*, *loc*



Standardmässig synchronisiert der AAD connect also das Attribut nach Azure AD. Genau so wie es halt auch im Active Directory steht.


Beim Anpassen von Synchronization Rules, wird empfohlen den AAD Sync zu stoppen

Set-ADSyncScheduler -SyncCycleEnabled $false


C:\Program Files\Microsoft Azure AD Sync\UIShell\SyncRulesEditor.exe

Ich schaue mir mal an, bei welchen Inbound Rules vom Active Directory das Attribut benutzt wird


Ich schaue mir an, bei welchen Outbound Rules von Azure Active Directory das Attribut benutzt wird.


Nun erstelle ich eine neue Synchronization Rule

Name: Out to Azure AD – User preferredLanguageBE
Connected System: Azure AD
Connected System Object Type: user
Metaverse Object Type: person
Link Type: Join
Precedence: 1 (Regeln 1 bis 99 sind für Custom Rules reserviert)


Beim Scoping Filter gebe ich die Objekte an, auf die die Regel angewendet werden soll

Scoping Filter:
sourceObjectType EQUAL User
cloudMastered NOTEQUAL True
preferredLanguage EQUAL BE


Die Join rules lasse ich so stehen


Bei den Transformations konfiguriere ich, was rauskommen soll

Transformations:

Constant preferredLanguage nl-BE Update



Set-ADSyncScheduler -SyncCycleEnabled $true

Start-ADSyncSyncCycle -PolicyType Delta




Dann warte ich ab, bis der Sync abgeschlossen ist
C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe


Ein Update hat es gegeben auf diesem Objekt (doppelklicken)


Und ich sehe, dass meine Sync Rule gezogen hat


Get-MsolUser -UserPrincipalName m.muster@icewolf.ch | fl *lang*, *loc*

Get-AzureADUser -SearchString t.turner@icewolf.ch | fl *lang*, *loc*



Das hat also geklappt und nun kann ich die Regel auch für die anderen zwei Sprachen einrichten.

Erst noch wieder den AAD Sync Sheduler stoppen
Set-ADSyncScheduler -SyncCycleEnabled $false


Bei den folgenden Regeln dann einfach bei der Precedence (Reihenfolge 2 und 3) eingeben






In der Übersicht sehe ich nun die Regeln 1 bis 3 welche von mir erstellt wurden


Testing:


Set-ADSyncScheduler -SyncCycleEnabled $true

Start-ADSyncSyncCycle -PolicyType Delta




Start-ADSyncSyncCycle -PolicyType Delta






Liebe Grüsse
Andres Bohren