2016-10-31 65 views
0

我們同步本地AD到Office 365PowerShell命令查詢Exchange在線自動回覆配置

我一直要求得到誰是用戶外的辦公室答覆:

  1. 殘疾人
  2. 還有一個Exchange郵箱。

我有一些命令,但不能弄清楚如何使它發揮作用:

$disabled = Get-ADUser -SearchBase "ou=Employees,ou=accounts,dc=domain,dc=local" -Filter { UserAccountControl -eq 514 } -Properties mail | Select-Object mail 

foreach ($mail in $disabled) { 
    Get-MailboxAutoreplyConfiguration -Identity $mail 
} 
+1

'選擇對象郵件'→'選擇對象--ExpandProperty郵件' – Swonkie

+1

哪一部分是你無法弄清楚的,以及什麼不適用於代碼。更加詳細一些。 – David

回答

0

我相信這可以在不調用AD通過Get-ADUser cmdlet的實現得到禁用的帳戶列表。您可以查看Get-Mailbox的結果ExchangeUserAccountControl。如果值爲AccountDisabled,則應在AD中禁用該帳戶。

因此,這意味着你可以這樣做:(如果你想將數據發送到一個文件,應立即更換,例如)只是爲了觀看

Get-Mailbox -ResultSize Unlimited | 
     Where { 
     $_.recipienttype -eq "UserMailbox" -and ` # make sure we only get user mailboxes 
     $_.recipienttypedetails -eq "UserMailbox" -and ` # make sure we only get licenced mailboxes only, no shared mailboxes, no room mailboxes, etc 
     $_.exchangeuseraccountcontrol -like "*accountdisabled*" # make sure we only get disabled user accounts 
     } | 
     Get-MailboxAutoreplyConfiguration | # we can pipe user mailbox object directly into this cmdlet (no need to go into a foreach loop) 
     Format-List identity,autoreplystate,internalmessage,externalmessage # you can remove this and replace with Select then send to Csv or wherever you need 

Format-List最後一行,這個數據可以有很大的輸出,取決於用戶是否設置了內部或外部消息。

請注意,上面將返回所有活動郵箱列表中你Office365房客說:

  1. 有Office365 UserMailbox(應該是行貨郵箱)
  2. 在Active Directory中被禁用(AD帳戶有Enabled : $False

通過查看autoreplystate值,可以確定AutoReply消息是否處於活動狀態。它將是EnabledDisabled。因此,您甚至可以添加另一個Where子句以僅過濾僅包含具有autoreplystate : Enabled的郵箱,以僅查看設置了活動自動答覆的郵箱(根據您的描述,這不清楚是否需要)。