2012-09-19 87 views
1

的所有電子郵件地址,我有以下PowerShell腳本:導出電子郵件地址 - 刪除包含數字

Get-Mailbox -ResultSize Unlimited | Select-Object PrimarySmtpAddress | Export-Csv c:\userlist.csv -NoTypeInformation 
Send-MailMessage -from [email protected] -to [email protected] -subject "Email Addresses" -Attachment "c:\userlist.csv" -SmtpServer relay-server 

這給了我所有的電子郵件地址作爲交換。我有一幫有號碼這樣的地址的電子郵件地址:

[email protected]

我如何按摩的數據,所以我只能在具有信件出口的電子郵件地址?我不希望將任何包含數字的電子郵件地址導出到userlist.csv文件。

回答

4

使用Where對象cmdlet與-notmatch

Get-Mailbox -ResultSize Unlimited | Where-Object { $_.PrimarySmtpAddress -NotMatch "\d" } | Select-Object PrimarySmtpAddress | Export-Csv c:\userlist.csv -NoTypeInformation 
Send-MailMessage -from [email protected] -to [email protected] -subject "Email Addresses" -Attachment "c:\userlist.csv" -SmtpServer relay-server 
+0

完美的作品......謝謝! – user597875

+1

我很高興它的工作原理。另外請記住它會檢查電子郵件地址的兩側,所以[email protected]也會被過濾掉。 請[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)我的答案。 – 2012-09-19 18:01:12

+0

這很好。謝啦!另外,有沒有辦法在腳本中安全地存儲憑據,這樣我就可以從任務計劃程序運行它,而不會被提示輸入我的憑據? – user597875

1

在一個側面說明,該代碼會只是主地址,如果用戶有多個地址,你沒有得到他們。你可以使用EmailAddressess屬性來獲得所有的addreses(不僅僅是smtp)。