Die Anforderung
ich arbeite just an einer Lösung für zentrale Outlook-Signaturen, die nicht ein Arm und ein Bein kosten.
Dazu verwende ich die Basis dieses Beitrags .
Die Daten kommen aus dem Active Directory. Jetzt benötige ich eine Information, die im Outlook-Adressbuch steht, aber im AD fehlt.
Man kann jetzt einen Azubi hinsetzen, der die ganzen Benutzer manuell anfasst und die Anpassung umsetzt. Dann wird man allerdings von diesem Azubi wegen der mordsspannenden Tätigkeit „gehasst“ und es ist trotz allem fehlerbehaftet.
Oder man automatisiert das Ganze.
Mein Problem dabei: ich habe keinen Zugriff auf den Exchange-Server des Konzerns, wo es sicher einen PowerShell-Einzeiler erledigen würde. Irgendwas Schickes mit „Get-GlobalAddressList“ vielleicht.
Es musste eine andere Lösung her, die ich unter msoutlook.info auch gefunden habe: ein Export des Adressbuchs nach Access.
Mein Plan war dann diese Daten nach Excel exportieren, in Excel filtern und dann ab in eine CSV-Datei, um von dort mit etwas PowerShell-Magie alles ins Active Directory zu übertragen.
Der Export nach Access
Dank Office 365 habe ich ein Access.
Gemäß der o.a. Anleitung habe ich eine neue Datenbank angelegt. Über den Reiter „Externe Daten“ wurde eine „Neue Datenquelle“- „Aus anderen Quellen“ – „Outlook-Ordner“ für den Import angelegt.
Als Quelle habe ich die „Offline Global Address List“ angegeben. Ich habe mir davon versprochen, dass der Import bei der großen Anzahl an Einträgen dann hinreichend zügig vonstatten gehen würde.
Auch der Export aus dem lokal vorliegenden „Offline Global Address List“ dauert aufgrund der großen Anzahl der Daten gefühlt ewig. Der Assistent zeigte ab dem Klick auf „Fertigstellen“ über 45 min „Keine Rückmeldung“ an. Hier ist Durchhaltevermögen gefragt.
Anpassung in Excel
Der Export nach Excel sind zwei Mausklicks.
An dieser Stelle habe ich dann gefiltert, denn die Benutzer von außerhalb des Standorts sind für mich uninteressant.
Das Ergebnis habe ich in ein neues Tabellenblatt kopiert. Den Benutzernamen erzeugte ich mittels der Verketten-Funktion.
Das Resultat wurde final in einer csv-Datei gespeichert.
Import ins Active Directory
Mittels der beiden PowerShell-Commandlets „Import-CSV“ und „Set-ADUser“ war der Drops in wenigen Minuten gelutscht.
$collection = @(Import-Csv -Delimiter ';' -Encoding UTF8)
foreach ($item in $collection)
{
Set-ADUser -Identity $item.sam -Replace @{pager=$item.konto}
}
Hallo
der Expor funktioniert nur die MAils nicht.
zB. dies wird aAngezeit nicht die Mails
/o=lhw/ou=Exchange Administrative Group (xxxxxxxxxxxxxx)/cn=Recipients/cn=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-
Das ist richtig. Aber in der Regel kenne ich den Aufbau der E-Mail-Adressen meiner Domäne. Die sind per „=verketten()“ schnell in Excel zusammengeklöppelt. Die Ausnahmen von der Regel kennt man im Allgemeinen auch.