How to Determine Account Type?

前端 未结 2 363
夕颜
夕颜 2021-01-26 21:58

In my script I need to know whether an account is a Mail-User, Mail-Contact or licensed user account.

Presently I have to know this before-hand

相关标签:
2条回答
  • 2021-01-26 22:34

    The RecipientTypeDetails specifies the type of recipients returned.

    You can select from the following values with Get-Recipient:

    1. ArbitrationMailbox
    2. ConferenceRoomMailbox
    3. Contact
    4. DiscoveryMailbox
    5. DynamicDistributionGroup
    6. EquipmentMailbox
    7. ExternalManagedContact
    8. ExternalManagedDistributionGroup
    9. LegacyMailbox
    10. LinkedMailbox
    11. MailboxPlan
    12. MailContact
    13. MailForestContact
    14. MailNonUniversalGroup
    15. MailUniversalDistributionGroup
    16. MailUniversalSecurityGroup
    17. MailUser
    18. PublicFolder
    19. RoleGroup
    20. RoomList
    21. RoomMailbox
    22. SharedMailbox
    23. SystemAttendantMailbox
    24. SystemMailbox
    25. User
    26. UserMailbox

    What I am understanding from your case is that you need UserMailbox, User , MailUser , MailContact

    I don't have an exchange setup right now. BUt you can set off with these value. It falls under Microsoft.Exchange.Data.Directory.Recipient.RecipientTypeDetails[]

    0 讨论(0)
  • 2021-01-26 22:35

    I would probably look at RecipientTypeDetails to get the Mailbox type for the Mailbox/MailContact.

    Maybe do the opposite if you have more MailContacts then Mailboxes in order to optimze it.

    And I guess by "Licensed" you mean a UserMailbox? Since you do not mention Azure AD. In Azure AD you have IsLicensed with Get-MsolUser.

    function GetAccountType($user)
    {
        $Mailbox = Get-Mailbox -identity $user | select name, RecipientTypeDetails
        $type = ""
        if ($Mailbox.RecipientTypeDetails -eq "UserMailbox")
        {
            $type = "Licensed"
        }
        elseif ($Mailbox.RecipientTypeDetails -eq "SharedMailbox")
        {
            $type = "Shared"
        }
        else
        {
            $MailUser = Get-MailContact -identity $user | select name, RecipientTypeDetails
            if ($MailUser.RecipientTypeDetails -eq "MailContact")
            {
                $type = "Mail-Contact"
            }
            else
            {
                $type = "Something else"
            }
        }
        $type
    }
    
    $a = GetAccountType -user "userid"
    $a | Out-Host
    
    0 讨论(0)
提交回复
热议问题