Я хочу использовать операцию замены строки, чтобы убедиться, что результат не содержит 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, все строчные буквы не отображаются.