Исправить сценарий PowerShell для отображения отключенной учетной записи пользователя AD (не общих почтовых ящиков) с почтовым ящиком Exchange и его размера в мегабайтах? - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь изменить приведенный ниже сценарий, чтобы он отображал все отключенные учетные записи пользователей AD с включенным почтовым ящиком пользователя Exchange (не Shared Mailbox).

Поскольку приведенный ниже скрипт также возвращает общие почтовые ящики, которые всегда создаются как отключенная учетная запись пользователя 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

Было бы хорошо, если бы в столбце был указан размер почтового ящика в мегабайтах.

Как в следующем скрипте:

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 голосов
/ 31 августа 2018

Чтобы добавить столбец 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 для Get-MailboxStatistics может принимать одно из следующих значений:

  • Имя
  • Отображаемое имя
  • Псевдоним
  • Отличительное имя (DN)
  • канонический DN
  • имя домена \ имя учетной записи
  • Адрес электронной почты
  • GUID
  • LegacyExchangeDN
  • SamAccountName
  • ID пользователя или имя участника-пользователя (UPN)
0 голосов
/ 31 августа 2018

msExchRecipientTypeDetails со значением 4 обозначает общий почтовый ящик. Поэтому, чтобы исключить их, вы можете попробовать изменить свою первую строку кода на следующую и посмотреть, дает ли это желаемый результат.

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...