确定帐户是否存在

时间:2016-12-19 16:38:39

标签: powershell office365

在我的powershell脚本中,我需要确定一个帐户是否存在,并且我想构建一个函数来返回一个布尔值。

这是我当前的功能 - 问题在于我需要事先知道它是什么类型的帐户。您无法针对许可帐户运行get-mailuser,并且无法针对Mail-User或Mail-Contact对象运行get-mailbox。我理解这是因为这是两个不同的模块与两个不同的对象集交互。

那么如何修复此功能,以便我可以在不知道帐户是什么类型的情况下测试帐户是否存在?

#test for existing account
function accountexists($whatusertype, $whatusername){
    $itexists = $false
    switch($usertype){  #you can't use get-mailbox for mail-users or mail-contacts
        ("mail-user"){$itexists = [bool](get-mailuser -identity $whatusername -ErrorAction SilentlyContinue) }
        ("mail-contact"){ $itexists = [bool](get-mailuser -identity $whatusername -ErrorAction SilentlyContinue)}
        ("licensed"){ $itexists = [bool](get-mailbox -identity $whatusername -ErrorAction SilentlyContinue) }
    }
    return $itexists
}

或许这个问题的标题应该是How to determine account type?

1 个答案:

答案 0 :(得分:2)

所以基本上你应该检查我相信的收件人。

  

Get-Recipient -Identity user01@mydomain.com

将返回收件人对象。

您可以使用 -ANR 来搜索不明确的名称解析

  

Get-Recipient -ANR user01

注意:ANR可以返回多个匹配项,但不会给出SMTP别名匹配。