How to Determine Account Type?

前端 未结 2 454
夕颜
夕颜 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: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
    

提交回复
热议问题