更正PowerShell脚本以显示具有Exchange邮箱的禁用AD用户帐户(非共享邮箱)及其大小(以兆字节为单位)吗?

时间:2018-08-31 08:07:02

标签: powershell active-directory office365 exchange-server

我正在尝试修改以下脚本,因此该脚本显示了所有禁用的AD用户帐户,但仍启用了Exchange用户邮箱(而非共享邮箱)。

因为下面的脚本还返回了共享邮箱,该邮箱始终创建为禁用的AD用户帐户。

$Allusers = Get-ADUser -Filter {(enabled -eq $false)} -Properties homeMDB, mailNickName, mail, DisplayName, SamAccountName, Givenname, SurName | ?{ $_.homeMDB -ne $null }
$Allusers | Select-Object Givenname, Surname, DisplayName, Mail, MailNickName, SamAccountName, homeMDB | Export-Csv "C:\DisableduserMBX.csv" -NoTypeInformation

如果在MBytes列中也有邮箱大小,那会很好。

就像下面的脚本一样:

Get-Mailbox -ResultSize Unlimited |
  Get-MailboxStatistics |
  Select DisplayName,StorageLimitStatus, `
@{name="TotalItemSize (MB)"; expression={[math]::Round(($_.TotalItemSize.ToString().Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}}, `
ItemCount |
  Sort "TotalItemSize (MB)" -Descending

2 个答案:

答案 0 :(得分:2)

值为4的

msExchRecipientTypeDetails表示共享邮箱。因此,要排除这些错误,您可以尝试将第一行代码更改为以下内容,看看是否能提供所需的输出。

$Allusers = Get-ADUser -Filter 'enabled -eq $false -and msExchRecipientTypeDetails -ne 4' -Properties homeMDB, mailNickName, mail, DisplayName, SamAccountName, Givenname, SurName | ?{ $_.homeMDB -ne $null }

您还应该能够直接在过滤器中包含homeMDB位;

$Allusers = Get-ADUser -Filter 'enabled -eq $false -and msExchRecipientTypeDetails -ne 4 -and homeMDB -ne "$null"' -Properties homeMDB, mailNickName, mail, DisplayName, SamAccountName, Givenname, SurName

答案 1 :(得分:2)

要添加MBYTES列,可以尝试此操作。 请注意,这使用了notjustme提供的过滤器。

# for the sake of readability..
$filter = '(Enabled -eq $false) -and (msExchRecipientTypeDetails -ne 4) -and ("$null" -ne homeMDB)'
$properties = @('homeMDB', 'mailNickName', 'mail', 'DisplayName', 'SamAccountName', 'Givenname', 'SurName', 'ProxyAddresses')

$Allusers = (Get-ADUser -Filter $filter -Properties $properties  |
             ForEach-Object {
                $size = (Get-MailboxStatistics $_.SamAccountName).TotalItemSize.Value.ToMB()
                New-Object -TypeName PSObject -Property @{
                    homeMDB        = $_.homeMDB
                    mailNickName   = $_.mailNickName
                    mail           = $_.mail
                    ProxyAddresses = $_.ProxyAddresses -join '; '
                    DisplayName    = $_.DisplayName
                    SamAccountName = $_.SamAccountName
                    Givenname      = $_.Givenname
                    SurName        = $_.SurName
                    MBytes         = $size
                }
            }) | Sort-Object MBytes -Descending | Export-Csv "C:\DisableduserMBX.csv" -NoTypeInformation

p.s。我在其中添加了ProxyAddresses,以便能够发现更多的别名电子邮件地址。

p.s。 2 Identity的{​​{1}}参数可以是以下之一:

  • 名称
  • 显示名称
  • 别名
  • 专有名称(DN)
  • 规范DN
  • 域名\帐户名
  • 电子邮件地址
  • GUID
  • LegacyExchangeDN
  • SamAccountName
  • 用户ID或用户主体名称(UPN)