PDA

Bekijk Volledige Versie : Exchange 2013 - Contact export csv



Daros
03/04/14, 13:49
Goedemiddag allemaal,

Ik zit met een klein dilemma en hoop dat jullie mij in de goede richting willen duwen...
Voor een klant zijn we bezig met het opzetten van een VoIP server, de VoIP server doet een query op een MySQL server voor namelookup.

Nu willen we de contactpersonen die in een exchange mailbox staan omzetten naar MySQL.
Heeft iemand dit al eerder gedaan? Of weet iemand hoe je bv via powershell een CSV export kan krijgen van je contactpersonen?

Het betreft een server 2012 R2 met Exchange 2013 sp1.
Alles wat ik er op Google over vind gaat niet over export naar CSV en mijn powershell skills zijn minimaal tot geen :)

Alvast bedankt.

pierce
03/04/14, 14:46
Export naar csv is het minste probleem ;)
| export-csv c:\path\to\file.csv

Het schijnt wel te kunnen, maar zelf heb ik het nooit geprobeerd
http://social.technet.microsoft.com/Forums/exchange/en-US/d1bf41f5-2dd1-4543-8083-717abede9e2a/mailbox-contacts-to-csv?forum=exchange2010

Ik weet niet om hoeveel mailboxen het gaat, maar als het er een paar zijn ben je sneller klaar door een export uit outlook te maken...

Als het puur gaat om de mailadressen gekoppeld aan een mailbox

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,ServerName,PrimarySmtpAddress, @{Name=“EmailAddresses”;Expression={$_.EmailAd dresses |Where-Object {$_.PrefixString -ceq “smtp”} | ForEach-Object {$_.SmtpAddress}}} | Export-CSV c:\smtp.csv -NoTypeInformation

Daros
03/04/14, 15:04
Export naar csv is het minste probleem ;)
| export-csv c:\path\to\file.csv

Het schijnt wel te kunnen, maar zelf heb ik het nooit geprobeerd
http://social.technet.microsoft.com/Forums/exchange/en-US/d1bf41f5-2dd1-4543-8083-717abede9e2a/mailbox-contacts-to-csv?forum=exchange2010

Ik weet niet om hoeveel mailboxen het gaat, maar als het er een paar zijn ben je sneller klaar door een export uit outlook te maken...

Als het puur gaat om de mailadressen gekoppeld aan een mailbox

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,ServerName,PrimarySmtpAddress, @{Name=“EmailAddresses”;Expression={$_.EmailAddres ses |Where-Object {$_.PrefixString -ceq “smtp”} | ForEach-Object {$_.SmtpAddress}}} | Export-CSV c:\smtp.csv -NoTypeInformation


Beste Pierce,

Bedankt voor je reactie!
Het gaat om 1 mailbox, en het is de bedoeling dat het dagelijks/wekelijks gebeurd ivm updates. Vandaar dat we het graag willen automatiseren.
We gaan er naar kijken, thanks alvast!

Daros
05/04/14, 16:17
Met hulp van Pierce hebben we nu het volgende script waarmee we gaan testen (mocht iemand het ook willen gebruiken).

ps script:

$mail="email"
$outputfile="c:\locatie.csv"
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeServic e
$service.credentials = new-object System.Net.NetworkCredential("Gebruikersnaam", "Wachtwoord", "Domein");

$service.Url = new-object Uri("https://autodiscoverURL/EWS/Exchange.asmx");
$view = New-Object Microsoft.Exchange.WebServices.Data.ItemView(10000 ,0)
$findResults = $service.FindItems([Microsoft.Exchange.WebServices.Data.WellKnownFolde rName]::Contacts,$view)
'"FileAs","DisplayName","GivenName","Initials","MiddleName","Surname","NickName","CompanyName","EmailAddress1","EmailAddress2","Address1","Address2","PhoneNumber1","PhoneNumber2","PhoneNumber3","PhoneNumber4","JobTitle"' | Out-File -Encoding ASCII -FilePath $outputfile
foreach ($item in $findResults.Items){ """$($item.FileAs)"",""$($item.DisplayName)"",""$($item.GivenName)"",""$($item.Initials)"",""$($item.MiddleName)"",""$($item.Surname)"",""$($item.NickName)"",""$($item.CompanyName)"",""$($item.EmailAddresses[0].Address)"",""$($item.EmailAddresses[1].Address)"",""$($item.PhysicalAddresses[0].Street), $($item.PhysicalAddresses[0].City), $($item.PhysicalAddresses[0].State), $($item.PhysicalAddresses[0].CountryOrRegion), $($item.PhysicalAddresses[0].PostalCode)"",""$($item.PhysicalAddresses[1].Street), $($item.PhysicalAddresses[1].City), $($item.PhysicalAddresses[1].State), $($item.PhysicalAddresses[1].CountryOrRegion), $($item.PhysicalAddresses[1].PostalCode)"",""$($item.PhoneNumbers[0])"",""$($item.PhoneNumbers[1])"",""$($item.PhoneNumbers[2])"",""$($item.PhoneNumbers[3]),$($item.JobTitle)""" | Out-File -Encoding ASCII -FilePath $outputfile -Append}


CSV bestand:

"FileAs","DisplayName","GivenName","Initials","MiddleName","Surname","NickName","CompanyName","EmailAddress1","EmailAddress2","Address1","Address2","PhoneNumber1","PhoneNumber2","PhoneNumber3","PhoneNumber4","JobTitle"
"gebruiker, Test","Test gebruiker","Test","","","gebruiker","","","test@stric.nl","",", , , , ",", , , , ","","","0123456789",","