UPN anhand der primären E-Mail-Adresse generieren

Hier ein kleines PowerShell Script (Set-UPNbasedSMTP), um den UPN (User Principal Name) anhand der primären SMTP Adresse (E-Mail-Adresse) für alle Active Directory Benutzer mit Postfach zu setzen.

Das PowerShell Script „Set-UPNbasedSMTP“ listet zuerst die vorhandenen von Exchange akzeptierten Domänen auf, vergleicht diese mit den ggfs. vorhandenen UPN Suffixen und ergänzt diese um nicht vorhandene User Principal Suffixe. Im nächsten Schritt wird der User Principal Name des AD User Objektes gleich der primären SMTP Adresse der entsprechenden Mailbox gesetzt.

$UPNSuffixe = New-Object -TypeName System.Collections.Generic.List[PSCustomObject]

if($env:ExchangeInstallPath){
    $ExchVer = $((Get-ChildItem $($env:ExchangeInstallPath + "Bin\ExSetup.exe")).VersionInfo.FileVersion).Replace(".","")
    if($ExchVer.StartsWith("1502") -or $ExchVer.StartsWith("1501") -or $ExchVer.StartsWith("1500")){
        Write-Host "Laden des Exchange PowerShell Snapins für Exchange 2013, 2016, 2019" -NoNewline
        Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
        Write-Host " -> Ok!"
    } elseif($ExchVer.StartsWith("14")){
        Write-Host "Laden des Exchange PowerShell Snapins für Exchange 2010" -NoNewline
        Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
        Write-Host " -> Ok!"
    }
}

if($(Get-PSSnapin | where { $_.Name -ieq "Microsoft.Exchange.Management.PowerShell.E2010" -or $_.Name -ieq "Microsoft.Exchange.Management.PowerShell.SnapIn" })){
    $DomainDNName = (Get-ADDomain -Identity $env:USERDNSDOMAIN).DistinguishedName

    foreach($UPNSuffix in $(Get-ADForest -Identity $env:USERDNSDOMAIN | Select-Object UPNSuffixes -ExpandProperty UPNSuffixes | Sort-Object)){
        $UPNSuffixe.Add($UPNSuffix)    
    }

    foreach($AcceptedDomain in $(Get-AcceptedDomain | ? DomainName -ne $env:USERDNSDOMAIN | Select-Object DomainName -ExpandProperty DomainName)){
        if($UPNSuffixe -inotcontains $AcceptedDomain.Domain){
            Write-Host "Füge UPN Suffix ""$AcceptedDomain"" hinzu" -NoNewline
            Set-ADForest -Identity $env:USERDNSDOMAIN -UPNSuffixes @{Add="$AcceptedDomain"}
            Write-Host " -> Ok!"
        }
    }

    foreach($Mailbox in $(Get-Mailbox | ? Name -inotmatch "DiscoverySearchMailbox")){
        Write-Host "Setze UPN ""$($Mailbox.PrimarySmtpAddress)"" für Benutzer ""$($Mailbox.SamAccountName)""" -NoNewline
        Set-ADUser -Identity $Mailbox.SamAccountName -UserPrincipalName $Mailbox.PrimarySmtpAddress
        Write-Host " -> Ok!"
    }
}

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.