Nutzungsspeicherort (Usage Location) mit Azure AD Connect synchronisieren

Erneut ein kurzes, knappes PowerShell Code Snippet welchen den Nutzungsspeicherort (die Usage Location (msExchUsageLocation)) aus dem On-Premise Active Directory per Azure AD Connect ins Azure AD synchronisiert.

Vorab: Das lokale Active Directory muss mittels Exchange Setup um die Exchange Active Directory Attribute erweitert werden, da ansonsten „msExchUsageLocation„, welches die Usage Location im AAD darstellt, fehlt! In der Regel sollte es an dieser Stelle keine Probleme geben, da irgendwo (On-Premise / Hybrid) sicherlich ein Exchange ist. 🙂

Zum Script-Snippet: Das Script liest die AD-User Objekte (Get-ADUser) in einer Organisationseinheit aus und filtert dabei auf die „ObjectClass“. Danach werden neben der „USageLocation“ noch weitere Standort Attribute befüllt.

foreach($ADUser in $(Get-ADUser -SearchBase "OU=Benutzer,OU=<Pfad zur OU>,DC=<SUB>,DC=<DOMAIN>,DC=<TLD>" -Filter {ObjectClass -eq "user"})){
    Write-Host "Passe Benutzer $($ADUser.Name) an.."
    Set-ADUser $ADUser -Replace @{C="DE"}
    Set-ADUser $ADUser -Replace @{co="Deutschland"}
    Set-ADUser $ADUser -Replace @{countryCode=276}
    Set-ADUser $ADUser -Replace @{preferredLanguage="DE-DE"}
    Set-ADUser $ADUser -Replace @{msExchUsageLocation="DE"}
}

Sollte den Usern z.B. noch die Straße, Bundesland oder Ort fehlen, könnte man das Script gleich noch erweitern:

foreach($ADUser in $(Get-ADUser -SearchBase "OU=Benutzer,OU=<Pfad zur OU>,DC=<SUB>,DC=<DOMAIN>,DC=<TLD>" -Filter {ObjectClass -eq "user"})){
    Write-Host "Passe Benutzer $($ADUser.Name) an.."
    Set-ADUser $ADUser -Replace @{C="DE"}
    Set-ADUser $ADUser -Replace @{co="Deutschland"}
    Set-ADUser $ADUser -Replace @{countryCode=276}
    Set-ADUser $ADUser -Replace @{preferredLanguage="DE-DE"}
    Set-ADUser $ADUser -Replace @{msExchUsageLocation="DE"}
    Set-ADUser $ADUser -StreetAddress "<Strasse und Hausnummer>" -State "NRW" -PostalCode "50859" -City "Köln"
}

Sollte man in seiner OU Struktur oder an einer anderen Stelle noch das Land / den Standort versteckt haben, könnte man natürlich noch weiter erweitern:

foreach($ADUser in $(Get-ADUser -SearchBase "OU=Benutzer,OU=<Pfad zur OU>,DC=<SUB>,DC=<DOMAIN>,DC=<TLD>" -Filter {ObjectClass -eq "user"})){
    Write-Host "Passe Benutzer $($ADUser.Name) an"
    if($ADUser.DistinguishedName -imatch "OU=Deutschland,"){
        Set-ADUser $ADUser -Replace @{C="DE"}
        Set-ADUser $ADUser -Replace @{co="Deutschland"}
        Set-ADUser $ADUser -Replace @{countryCode=276}
        Set-ADUser $ADUser -Replace @{preferredLanguage="DE-DE"}
        Set-ADUser $ADUser -Replace @{msExchUsageLocation="DE"}
        if($ADUser.DistinguishedName -imatch "OU=Koeln,"){
            Set-ADUser $ADUser -StreetAddress "<Strasse und Hausnummer>" -State "NRW" -PostalCode "50859" -City "Köln"
        } elseif($ADUser.DistinguishedName -imatch "OU=Xanten,"){
            Set-ADUser $ADUser -StreetAddress "<Strasse und Hausnummer>" -State "NRW" -PostalCode "46509" -City "Xanten"
        } elseif($ADUser.DistinguishedName -imatch "OU=Windeck,"){
            Set-ADUser $ADUser -StreetAddress "<Strasse und Hausnummer>" -State "NRW" -PostalCode "51570" -City "Windeck"
        }
    } elseif($ADUser.DistinguishedName -imatch "OU=USA,"){
        Set-ADUser $ADUser -Replace @{C="US"}
        Set-ADUser $ADUser -Replace @{co="USA"}
        Set-ADUser $ADUser -Replace @{countryCode=840}
        Set-ADUser $ADUser -Replace @{preferredLanguage="EN-US"}
        Set-ADUser $ADUser -Replace @{msExchUsageLocation="US"}
        if($ADUser.DistinguishedName -imatch "OU=LasVegas,"){
            Set-ADUser $ADUser -StreetAddress "3600 S Las Vegas Blvd" -State "Nevada" -PostalCode "89109" -City "Las Vegas"
        } elseif($ADUser.DistinguishedName -imatch "OU=Detroit,"){
            Set-ADUser $ADUser -StreetAddress "1777 3rd Ave" -State "Michigan" -PostalCode "48226" -City "Detroit"
        }
    }
}


Die gesuchte Lösung noch nicht gefunden oder benötigen Sie Hilfe bei anderen Themen aus meinem Blog? Nehmen Sie gerne Kontakt mit mir bzw. meinem Unternehmen Jan Mischo IT auf. Ich freue mich auf Ihre Anfrage: https://janmischo.it/kontakt/


+49 2801 7004300

info@janmischo.it


Beitrag veröffentlicht

in

, ,

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.