Az Exchange 2007-hez csupán egy 2%-ban kész GUI-t mellékelnek azért a pár millió Forintért, a többit meg kell oldani PowerShell-ben, vagy .NET-ben le kell fejleszteni magunknak. Ahhoz, hogy az AD varázslása nélkül terjesztési listát tudjunk létrehozni, egy NEM Microsoft formátumú CSV-re van szükségünk, az Exchange Management Shell-re és persze kitartásra és türelemre.
Hogy miért „NEM Microsoft” formátumú CSV? Azért mert a CSV ügye az egész világ szerint Comma Separated Values – azaz VESSZŐVEL elválasztott értékek. A Microsoft CSV-ben – amit mondjuk Excelben is mentünk – pontosvesszővel van elválasztva, azaz SSV-nek kellene lennie: Semicolon Separated Values. Mert a Microsoftnak és a Cisco-nak mindenből kell egy világtól eltérő saját szabvány. De láss csodát, az Exchange-nek a CSV, VESSZŐVEL elválasztott.
Hogyan is nézzen ki egy ilyen CSV? Tulandonképpen 2 mindenképpen kitöltendő mező van, a többi automatikusan létrejön, vagy opcionális: az e-mail cím (SMTP address) és a név (Name). Például:
No,Name,MailAddr 1,Gipsz Jakab,gipsz.jakab@teszt.com 2,Teszt Elek,teszt.elek@teszt.com
Amire nagyon oda kell figyelni:
- vesszővel és ne pontosvesszővel legyenek az adatok elválasztva
- az elválasztó vesszőknél nem lehet szóköz
- az első sor mindig az oszlopneveket kell hogy tartalmazza
- a CSV file valami könnyen elérhető helyen kell legyen, pl.: c:cimek.csv
A kontaktok importálása:
- Hozzuk létre a CSV fájlt, ügyelve a megfelelő formátumra (feljebb)
- Másoljuk egy könnyen elérhető helyre a szerveren (nekem problémásan ment az UNC), pl. c:cimek.csv
- Indítsuk el az Exchange Management Shell-t
Importáljuk egy változóba a CSV tartalmát:[PS] C:Documents and Settingsadmin2>$csv = Import-Csv "C:cimek.csv"
- Egyenként adjuk hozzá a bejegyzéseket, megjelölve, hogy melyik mező melyik:
[PS] C:Documents and Settingsadmin2>foreach($line in $csv) { New-MailContact -ExternalEmailAddress $line.MailAddr -OrganizationalUnit "Contacts" -Name $line.Name }
- Ha minden jól alakul, megússzuk egy rakás piros sor nélkül, ellenenőrizzük az Exchange Management Console-ban (F5-el nem árt frissíteni)
A terjesztési lista létrehozása:
A terjesztési lista automatikus feltöltéséhez, ugyancsak erre a CSV-re lesz szükségük. A legkönnyebb, ha megvarázsoljuk az Exchange Management Console-on a terjesztési listát (pl.:TesztCsoport) és PowerShell-ben adjuk hozzá a sok-sok kontatot, az alábbi módon:
[PS] C:Documents and Settingsadmin2>foreach($line in $csv) { Add-DistributionGroupMember -id TesztCsoport -Member $line.MailAddr }
Megjegyzés: Persze ami nálam nem működött, az lehet hogy más valakinél simán fog menni. Ilyen lehet a vessző-pontosvessző kérdés is, vagy a szóköz problémája. Naracs színnel a változókat jelöltem. Lehetőség van arra, hogy egy lépésben oldjuk meg, a $csv változó nélkül is, például így:
Import-csv C:cimek.csv | foreach {add-distributiongroupmember -id TesztCsoport -Member $_.MailAddr }
Google barátunk is ilyen eredményeket fog adni, de engem valamiért ez nem szeretett, mindig azt mondta, hogy $null az érték. Ha kiechoztam, akkor meg ott volt… Ha sorszámozni szeretnénk a listát, mert mondjuk nincsenek nevek, csak e-mail címek a listában, akkor azt az alábbi módon kell:
[PS] C:Documents and Settingsadmin2>foreach($line in $csv) { New-MailContact -ExternalEmailAddress $line.MailAddr -OrganizationalUnit "Contacts" -Name "Kontakt$($line.No)" }
Ahol a No a CSV-ben szereplő sorszám mező, így ennek eredménye Kontakt1, Kontakt2, stb. lesz.
Ha szeretnénk informálódni az eltárolt/eltárolható adatokról, akkor kiexportálhatjuk CSV-be:
[PS] C:Documents and Settingsadmin2>Get-DistributionGroupMember -Identity TesztCsoport | Export-Csv c:lista.csv
http://exchangestories.blogspot.com/2008/03/importing-mail-contacts-to-exchange.html egyéb okosság még itt