Exchange 2013'te E-posta Adreslerini Dışa Aktarma
Bir proje için tüm Posta Kutularını, UPN'lerini ve E-posta adreslerini içeren bir CSV dosyası oluşturmam gerekiyordu. Aşağıdaki komutu kullanabildiğiniz için önemli değil:
Get-Mailbox | Select UserPrincipalName,EmailAddressesCSV'ye dışa aktarma, PowerShell'de Export-Csv komutunu kullanarak aşağıdaki gibi varsayılan bir özelliktir:
Get-Mailbox | Select UserPrincipalName,EmailAddresses | Export-Csv C:\Temp\Addresses.csvNe yazık ki bu istenilen sonucu vermiyor. EmailAddresses özelliği çok değerli bir özellik olduğundan, değerler değil yalnızca tanım dışa aktarılır ve şu şekilde görünür:
#TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
“KullanıcıPrincipalName”,”E-postaAdresleri”
“Michael@azurelabs.nl”,”Microsoft.Exchange.Data.ProxyAddressCollection”
Bu, özel bir alan oluşturarak ve özelliğin tüm değerlerini aşağıdaki gibi ", " karakteriyle birleştirerek çözülebilir:
Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}}Bunu Export-Csv komutuyla birleştirin:
Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}} | Export-Csv C:\Temp\Addresses.csvBu da uygun bir CSV dosyasıyla sonuçlanacaktır:
Yaşayan PowerShell depom Michel de Rooij'e özellikle teşekkürler.