如何在Exchange 2010 EMS中显示禁用/启用状态

我正在使用这个小脚本来显示邮箱的大小,使用情况,所有用户邮箱的lastlogontime。

Get-MailboxDatabase "MDB01" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, @{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}}, itemcount, lastlogontime > C:\MailboxReport.txt Get-MailboxDatabase "MDB02" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, @{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}}, itemcount, lastlogontime >> C:\MailboxReport.txt 

我想扩展这个信息,无论用户帐户是启用还是禁用,因为我注意到很多用户都有空字段lastlogontime,所以看起来他们从来没有login(这可能是我们3周前迁移的可能)。

账户状态(启用/禁用)不能直接在EMS中访问。 我不得不在AD看到它并将其绑定到邮箱:

 #Import Exchange Module (Change this path to wherever this file lives) Import-Module C:\Temp\Exchange.psm1 #List of Mailbox Databases $MDBs = @("MDB01","MDB02") ForEach ($MDB in $MDBs) { #Get List of Mailboxes in the db $mailboxes = Get-MailboxDatabase $MDB | Get-MailboxStatistics #Add a semi-colon separated header line to the output file ac C:\Temp\Mailboxes.txt "DisplayName;TotalItemSize;ItemCount;LastLogonTime;AccountStatus" #Loop through each Mailbox and search AD to obtain account status ForEach ($user in $mailboxes) { #The filter ties the AD search to the specific mailbox in the loop $Filter = "(&(objectCategory=person)(objectClass=user)(legacyExchangeDN=$($user.LegacyDN)))" $AD = ([adsiSearcher]$Filter).findone() #Puts the UserAccountControl attribute into readable status #NOTE: the values I used are from my own observations to determine account status and may not be 100% accurate if ($AD.properties.item("userAccountControl") -eq 512 -or $AD.properties.item("userAccountControl") -eq 66048) { $acct = "Enabled" } else { $acct = "Disabled" } #Add a line to the output file with all the info we want ac C:\Temp\mailboxes.txt "$($user.displayname);$($user.totalitemsize);$($user.itemcount);$($user.lastlogontime);$acct" } }