Public/Exchange/Mailbox/Get/Get-ExMailboxRegionalConfiguration.ps1

function Get-ExMailboxRegionalConfiguration {
    param (
        [Parameter(Mandatory = $false, Position = 0)]
        [string]$Identity,
        [Parameter(Mandatory = $false)]
        [string]$ByDomain
    )

    [System.Collections.Generic.List[PSCustomObject]]$exoMbxRegionalConfigArray = @()

    # PropertySets All because by default SMTPClientAuthenticationDisabled is not returned
    if ($ByDomain) {
        $mailboxes = Get-EXOMailbox -ResultSize Unlimited -Filter "EmailAddresses -like '*@$ByDomain'" | Where-Object { $_.PrimarySmtpAddress -like "*@$ByDomain" }
    }
    elseif ($Identity) {
        [System.Collections.Generic.List[PSCustomObject]]$mailboxes = @()
        try {
            $mbx = Get-EXOMailbox -Identity $Identity
            $mailboxes.Add($mbx)
        }
        catch {
            Write-Warning "Mailbox not found: $Identity"
        }
    }
    else {
        $mailboxes = Get-EXOMailbox -ResultSize Unlimited
    }

    <#
    ECPEnabled : True
    OWAEnabled : True
    ImapEnabled : True
    PopEnabled : True
    MAPIEnabled : True
    EwsEnabled : True
    ActiveSyncEnabled : True
    #>


    foreach ($mbx in $mailboxes) {
        $regionalConfig = Get-MailboxRegionalConfiguration -Identity $mbx.PrimarySmtpAddress

        $object = [PSCustomObject][ordered]@{ 
            DisplayName        = $mbx.DisplayName
            PrimarySmtpAddress = $mbx.PrimarySmtpAddress
            ExchangeObjectId   = $regionalConfig.Identity
            Language           = $regionalConfig.Language
            TimeZone           = $regionalConfig.TimeZone
            DateFormat         = $regionalConfig.DateFormat
            TimeFormat         = $regionalConfig.TimeFormat
        }

        $exoMbxRegionalConfigArray.Add($object)
    }

    return $exoMbxRegionalConfigArray
}