Требуется некоторая помощь в исправлении PowerShell, форматирующего результат экспорта столбца для удаления SMTP: & smtp :? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу использовать операцию замены строки, чтобы убедиться, что результат не содержит SMTP : и smtp : строка.

Приведенный ниже скрипт экспортирует список отключенной учетной записи AD с соответствующими сведениями о почтовом ящике Exchange:

$filter = '(Enabled -eq $false) -and (homeMDB -ne "$null")'
$properties = @('homeMDB', 'mailNickName', 'mail', 'DisplayName', 'SamAccountName', 'ProxyAddresses')

$Allusers = (Get-ADUser -Filter $filter -Properties $properties  |
             ForEach-Object {

                $MBSize = (Get-MailboxStatistics $_.SamAccountName).TotalItemSize.Value.ToMB()
                $MBLastLogonTime = (Get-MailboxStatistics $_.SamAccountName).LastLogonTime
                $MBLastLoggedOnUserAccount = ((Get-MailboxStatistics $_.SamAccountName).LastLoggedOnUserAccount)
                $MBDisconnectDate = ((Get-MailboxStatistics $_.SamAccountName).DisconnectDate)
                $MBSMTPAddresses = ($_.ProxyAddresses | Where-Object {$_ -like "*smtp:*" }).replace("smtp:","") -join ';'

                New-Object -TypeName PSObject -Property @{
                    DisplayName    = $_.DisplayName
                    mailNickName   = $_.mailNickName
                    SamAccountName = $_.SamAccountName
                    mail           = $_.mail
                    ProxyAddresses = $MBSMTPAddresses
                    homeMDB        = (($_.homeMDB).split(',')[0]).split('=')[1]
                    MBytes         = $MBSize
                    LastLogonTime  = $MBLastLogonTime
                    LastLoggedOnUserAccount = $MBLastLoggedOnUserAccount
                    DisconnectDate = $MBDisconnectDate
                }
            }) | Sort-Object MBytes -Descending | Export-Csv "C:\Result.csv" -NoTypeInformation

Проблема с выводом столбца Export.CSV ProxyAddresses состоит в том, что содержимое столбца имеет вид:

SMTP: First.Last@domain.com; First.Last@domain2.com; Alias1@domain.com

Обратите внимание, что SMTP: email.user@domain.com все еще находится в столбце ProxyAddresses в Result.CSV, все строчные буквы не отображаются.

1 Ответ

0 голосов
/ 03 сентября 2018

Когда вы используете метод класса .Replace(), он чувствителен к регистру . Поэтому вы должны изменить условие .Replace('smtp:','') на верхний регистр .Replace('SMTP:','') или использовать оператор Powershell -replace, который не чувствителен к регистру .

$MBSMTPAddresses = (($_.ProxyAddresses | Where-Object {$_ -like "*smtp:*" }) -replace 'smtp:') -join ';'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...