Как изменить адрес прокси-сервера и почту с помощью powershell

#email #powershell

#Адрес электронной почты #powershell

Вопрос:

Мне просто нужно иметь возможность обрезать это только до SMTP. Прямо сейчас я получаю список всех адресов прокси

 Get-ADUser -filter 'Enabled -eq "True"'  -Properties proxyaddresses,mail | Where {$_.proxyAddresses -like "SMTP*"} | select-object mail,@{n='SMTPproxyaddresses';e={($_.proxyaddresses | ? {$_ -match '^smtp'})-join'; '}} | Export-Csv -Encoding UTF8 -NoTypeInformation C:Exportallusers4.csv
  

Вывод в это время :

 mail                    SMTPproxyaddresses
user1@contoso.com       SMTP:userproxy@contoso.com;SMTP:user.test@contoso.com
                        SMTP:testproxy@contoso.com
user2@contoso.com       smtp:user2@exchn.contoso.com;SMTP:user2proxy@contoso.com
user3@contoso.com       SMTP:user3proxy@contoso.com
  

Я хочу получить результат, подобный приведенному ниже. Мне просто нужно иметь возможность обрезать это только до SMTP

 SMTPproxyaddresses
userproxy@contoso.com
testproxy@contoso.com
user2proxy@contoso.com
user3proxy@contoso.com
  

Комментарии:

1. Только этот столбец, больше ничего?

Ответ №1:

Вам нужно использовать -cmatch, чтобы совпадение учитывало регистр. Что касается удаления первого столбца, просто исключите его из вашего выбора.

Я считаю, что что-то подобное должно сработать…

 Get-ADUser -Filter 'Enabled -eq "True"' -Properties proxyaddresses | 
where { $_.proxyAddresses -like "SMTP*" } | 
select-object @{ n='SMTPproxyaddresses';e={ ($_.proxyaddresses | where { $_ -cmatch '^SMTP'})-join'; ' -replace 'SMTP:'} } | 
Export-Csv -Encoding UTF8 -NoTypeInformation C:Exportallusers4.csv