lamort 10 Geschrieben 17. Februar 2009 Melden Teilen Geschrieben 17. Februar 2009 Hallo Leute Mit der Exchange-Erweiterung des Active Directory Schemas, wurden eine Reihe von Attributen erstellt. Darunter auch die ExtensionAttribute1-15. Mit der neuen Version von Exchange (2007), sind die Maiboxen nur noch ueber die Powershell Scriptbar. Vorher verwendeten wir die CDOEXM Api. Wir verwenden die ExtensionAttribute seit der Einfuehrung von Active Directory. Wir fuellen diese mit Informationen. Da die ExchangeAttribute geloescht werden, sobald eine Mailbox geloescht wird, haben wir diese zwischen gespeichert und dann wieder geschrieben. Wir hatten also eine Funktion die zur Mailboxloeschung aufgerufen wurde. Diese machte folgendes: 1. Sichern der ExtensionAttributes1-15 in ein Array 2. Mailbox loeschen 3. Schreiben der ExtensionAttributes1-15 aus dem Array Nun sind wir daran unsere Scripts in Powershell umzuschreiben. Zur Loeschung der Mailbox gibt es ein cmdlet: disable-mailbox der neue Script wurde wieder so aufgebaut: 1. Sichern der ExtensionAttributes1-15 in ein Array 2. Mailbox loeschen 3. Schreiben der ExtensionAttributes1-15 aus dem Array Das Problem ist, dass die ExtensionAttributes verschwinden obwohl wir diese nach der Loeschung wieder schreiben. Ich vermute deshalb, dass der Befehl die Mailbox zu loeschen, in Exchange verzoegert ausgefuehrt wird. Hat jemand eine Idee, wie wir unser Problem loesen koennen. Ihr muesst euch vorstellen, dass diese Funktion in ein Webtool eingebaut ist, welches von den UserAccount-Managern verwendet wird. Diese Loeschen z.B. Mailboxen ueber unser Webtool. Zitieren Link zu diesem Kommentar
d.stegemann 10 Geschrieben 17. Februar 2009 Melden Teilen Geschrieben 17. Februar 2009 Hallo lamort, das Thema Exchange ist zwar überhaupt nicht mein Fall, aber hast du da schonmal geschaut? Disable-Mailbox -- schnipp-- Unter normalen Bedingungen wird ein Postfach sofort nach Abschluss des Befehls Disable-Mailbox oder Remove-Mailbox als getrennt markiert. Wenn das Postfach jedoch deaktiviert oder entfernt wurde, während der Exchange-Informationsspeicherdienst beendet wurde, oder durch ein anderes externes Mittel als die Exchange-Verwaltungsschnittstellen deaktiviert oder entfernt wurde, ist der Status des Postfachobjekts in der Exchange-Postfachdatenbank nicht als getrennt markiert. In diesem Fall können Sie das Cmdlet Clean-MailboxDatabase verwenden, um den Active Directory-Verzeichnisdienst nach getrennten Postfächern zu durchsuchen, die in der Microsoft Exchange-Postfachdatenbank noch nicht als getrennt markiert sind, und den Status dieser Postfächer im Exchange-Informationsspeicher zu aktualisieren. --schnapp-- Vielleicht hilfts ein wenig weiter. Gruß Dirk Zitieren Link zu diesem Kommentar
lamort 10 Geschrieben 17. Februar 2009 Autor Melden Teilen Geschrieben 17. Februar 2009 Hallo Dirk Danke fuer die schnelle Antwort. die Beschreibung des disable-mailbox cmdlet kenne ich. In diesem Fall geht es nur um das Trennen der Mailbox mit dem AD Account. Je nach Zustand des Systemes kann es sein, dass eine Mailbox von einem Accoutn getrennt wurde aber nicht entsprechend Markiert wurde, das Cmdlet Clean-MailboxDatabase holt dies dann nach. Dies hat aber auf die ExtensionAttribute keinen Einfluss. Jedenfalls interpretiere ich das so. Zitieren Link zu diesem Kommentar
d.stegemann 10 Geschrieben 17. Februar 2009 Melden Teilen Geschrieben 17. Februar 2009 hallo lamort, Ich vermute deshalb, dass der Befehl die Mailbox zu loeschen, in Exchange verzoegert ausgefuehrt wird. Wenn ich dich richtig verstanden habe, musst du sicherstellen, das die Mailbox disabled ist, bevor du die Attribute zurückschreibst... Dafür müsstest du schauen, ob das Teil wirklich disabled ist, bevor du die Attribute zurückschreibst... Oder steh' ich da gerade auf dem Schlauch? Gruß Dirk PS: Ich glaub jetzt kommt mir wieder in Erinnerung warum ich mich noch nie mit einer Version von Exchange > 5.5 tiefer auseinandergesetzt habe :) Zitieren Link zu diesem Kommentar
lamort 10 Geschrieben 17. Februar 2009 Autor Melden Teilen Geschrieben 17. Februar 2009 Hallo Dirk, Ja, das ist eine Variante. Nur dauert diese zulange, bei uns mindestens 40-60 Sekunden. Die Funktion wuerde dann wie folgt aussehen: 1. Sichern der ExtensionAttributes1-15 in ein Array 2. Mailbox loeschen 3. Loop ist MailboxWirklich geloescht? wenn ja weiter 4. Schreiben der ExtensionAttributes1-15 aus dem Array Das bedeutet, wenn ein UserAccountManager den Task hat mehrere Mailboxen zu loeschen, muss er jeweils mindestens 40-60 Sekunden (Solange dauert es bis die Mailbox tatsaechlich disabled ist) warten bis er die naechste loeschen kann. In unserer Umgebung haben wir ca. 40'000 Mailboxen und muessen solche Prozesse, wie das Loeschen der Mailboxen, moeglichst optimiert entwickeln. Deshalb moechte ich wissen wie ich evtl. das Loeschen der Mailbox forcieren koennte oder ob es sonst Varianten gibt. Gruesse Michel Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. Februar 2009 Melden Teilen Geschrieben 17. Februar 2009 Mahlzeit.... Darf ich mal zwischenzeitlich anfragen, was du mit dem "Gefrickel" eingentlich erreichen willst? Wenn du an einem Konto die Exchange-Attribute entfernst, dann sind die Extension Attribute halt weg. Das sie verzögert abgeräumt werden, liegt daran, das dies der RUS ausführt, nachdem du den Exchange Task "Mailbox löschen" ausgeführt hast. Wäre es nicht für deine Zwecke sinnvoller statt Extension Attributen von Exchange eine eigene Schemaerweiterung im AD zu etablieren und deine Werte dort zu pflegen? Dann musst du keine Verrenkungen wegen des Exchangeverhaltens machen. Zitieren Link zu diesem Kommentar
lamort 10 Geschrieben 17. Februar 2009 Autor Melden Teilen Geschrieben 17. Februar 2009 Hallo Carsten Nun, als wir 2001 Active Directory eingefuehrt haben, empfahl Microsoft die Finger von Schemaaenderungen zu lassen. Das war damals ein Thema bei dem es noch wenig Erfahrungen gab. Deshalb wurde uns empfohlen die ExtAttr zu verwenden. Neben den ExtensionAttributes, verwenden wir weitere MSX Attribute, wie zum Beispiel die ProxyAddresses. Hier ein Beispiel: Wenn ein User unsere Firma verlaesst, muessen wir dessen Emailadressen und Acountnamen fuer 15 Monate sichern. Also wird der Account deaktiviert und die Mailbox geloescht. Die Proxyadresses werden behalten (indem wir sie nach der Mailboxloeschung wieder schrieben). Somit kann unsere Funktion welche neue Mailadressen generiert, in den Proxyaddresses kontrollieren ob die Mailadressen bereits existieren. Der RUS exitiert in einer MSX2007 Nativ Umgebung nicht mehr. der asynchrone Zustand den es vorher gab, gbit es nicht mehr in MSX2007, die cmd-lets schreiben direkt in Active Directory, deshalb ist das Verhalten nach dem Mailboxloeschen so unverstaendlich. Zitieren Link zu diesem Kommentar
d.stegemann 10 Geschrieben 18. Februar 2009 Melden Teilen Geschrieben 18. Februar 2009 Hallo Michael, Die Funktion wuerde dann wie folgt aussehen: 1. Sichern der ExtensionAttributes1-15 in ein Array 2. Mailbox loeschen 3. Loop ist MailboxWirklich geloescht? wenn ja weiter 4. Schreiben der ExtensionAttributes1-15 aus dem Array Das bedeutet, wenn ein UserAccountManager den Task hat mehrere Mailboxen zu loeschen, muss er jeweils mindestens 40-60 Sekunden (Solange dauert es bis die Mailbox tatsaechlich disabled ist) warten bis er die naechste loeschen kann. es wäre durchaus interessant zu wissen, ob das überhaupt klappt... Dann könnte man ein mehrdimensionales Array erzeugen um die Performance zu verbessern... user(0)attr(0-14) user(1)attr(0-14) Das dann in eine verschachtelte for -- next Schleife packen... Mal so als Impression. Wenn das Teilchen nach dem Motto FIFO arbeitet sollte es reichen zu prüfen ob die letzte Mailbox disabled wurde. Gruß Dirk Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.