Deaktivierte Mailbox User wieder zuweisen mit der Powershell ?
Hallo alle zusammen,
ich versuche per Powershell eine deaktivierte Mailbox einen benutzer wieder neu zu zuweisen.
Leider finde ich keine gemeinsamkeiten anhand ich es festlegen kann, das es sich genau um diese Mailbox handelt von dem User. Über DisplayName ist mir das zu wage. Hatte an eine ExchangeGUID gehofft. aber die hat der ADuser nach dem trennen der Mailbox nicht mehr. Daher dachte ich hier in der Runde ob jemand eine idee hat. wie ich sicherstellen kann
das ich per Powershell die zugehörigkeit einer Mailbox darstellen kann ? bin für jede Anregung offen.
gruß
Marhal
ich versuche per Powershell eine deaktivierte Mailbox einen benutzer wieder neu zu zuweisen.
Leider finde ich keine gemeinsamkeiten anhand ich es festlegen kann, das es sich genau um diese Mailbox handelt von dem User. Über DisplayName ist mir das zu wage. Hatte an eine ExchangeGUID gehofft. aber die hat der ADuser nach dem trennen der Mailbox nicht mehr. Daher dachte ich hier in der Runde ob jemand eine idee hat. wie ich sicherstellen kann
das ich per Powershell die zugehörigkeit einer Mailbox darstellen kann ? bin für jede Anregung offen.
gruß
Marhal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202224
Url: https://administrator.de/contentid/202224
Ausgedruckt am: 17.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
das Angeben einer Serverversion ist manchmal hilfreich.
Unter 2010 kann man schauen, wie Exchange das regelt. Einfach einmal den Wizard zum Reconnect ausführen, am Ende hast du links unten das Powershell-Symbol, dass dir anzeigt, welcher Befehl ausgeführt wurde - was verwendet Exchange hier?
Außerdem musst du nicht den Displayname nehmen. Exchange verwendet ANR (ambiguous Name Resolution), die den String, den du eingibst, in mehreren Attributen sucht (Sidenote: ich konnte die Reihenfolge, in der gesucht wird, nicht ermitteln - was ist, wenn ich einen Nutzer mit UPN "abc@def.de" und einen anderen mit der E-Mail-Adresse "abc@def.de" habe - kann dir aber hier nicht passieren). Fühle dich frei, statt des Displaynames des Users einfach GUID, UPN, Domain\Name oder DN zu verwenden. Für die Mailbox kannst du den LegacyExchangeDN oder die MailboxGUID verwenden.
Gruß
Filipp
das Angeben einer Serverversion ist manchmal hilfreich.
Unter 2010 kann man schauen, wie Exchange das regelt. Einfach einmal den Wizard zum Reconnect ausführen, am Ende hast du links unten das Powershell-Symbol, dass dir anzeigt, welcher Befehl ausgeführt wurde - was verwendet Exchange hier?
Außerdem musst du nicht den Displayname nehmen. Exchange verwendet ANR (ambiguous Name Resolution), die den String, den du eingibst, in mehreren Attributen sucht (Sidenote: ich konnte die Reihenfolge, in der gesucht wird, nicht ermitteln - was ist, wenn ich einen Nutzer mit UPN "abc@def.de" und einen anderen mit der E-Mail-Adresse "abc@def.de" habe - kann dir aber hier nicht passieren). Fühle dich frei, statt des Displaynames des Users einfach GUID, UPN, Domain\Name oder DN zu verwenden. Für die Mailbox kannst du den LegacyExchangeDN oder die MailboxGUID verwenden.
Gruß
Filipp
Hallo,
okay, das Problem liegt also nicht daran, die eigentliche Verbindung wiederherzustellen, sondern darin, zu speichern, welche Verbindung korrekt ist. Gut.
Dafür hast du zwei Möglichkeiten:
1) du speicherst das in einem AD-Attribut. Wie du schon festgestellt hast, sind die Exchange-Attribute (u.a. die Extension-Attribute) nicht geeignet, weil sie zusammen mit dem Postfach gelöscht werden. Blieben andere, wie z.B. Description/Notes, falls ihr diese nicht anderweitig nutzt. Ein geeignetes müsstest du dir selber heraussuchen, je nachdem, welche ihr schon nutzt. Das Vorgehen sollte das gleiche sein, dass du jetzt für das extensionAtt schon genutzt hast (vielleicht anderes cmdlet wie set-user zum Setzen des Wertes)
2) du nimmst einen externen Speicherort. Z.B. kannst du jeden Woche (auch automatisiert) einen Export der vorhandenen Daten als csv machen. Etwa get-mailbox | select DisplayName, PrimarySMTPAddress, ExchangeMailboxGUID,.... | export-csv $filename (wobei man als Bestandteil von $filename das aktuelle Datum nehmen kann). Noch eleganter (und auch nicht schwer) wäre ein Export in eine SQL-DB. So ein Export kann einen echten Mehrwert haben, wenn man z.B. noch die aktuelle Mailboxgröße mit exportiert, man hat dann immer einen passenden Report. Und wenn irgendjemand auf einmal ein Gruppenpostfach vermisst kann man auch feststellen, wann es noch vorhanden war. Wenn du dann ein Postfach wiederherstellen willst kannst du entweder die entsprechende Zeile aus dem CSV herauskopieren und an ein Skript übergeben, oder du kapselst auch das in ein Skript, dass dann die CSV einmal durchläuft, und nach dem von dir eingegebenen Namen sucht.
Egal welchen Speicherort du wählst: du solltest die Speicherung nicht nur auf die MailboxGUID beschränken. z.B. gehen auch die E-Mail-Adressen beim Löschen und Wiederherstellen verloren, das kann sehr ärgerlich sein. Ebenso alle ExtensionAttribute. Auch den LegacyExchangeDN nochmal irgendwo zu haben kann nützlich sein.
Gruß
Filipp
okay, das Problem liegt also nicht daran, die eigentliche Verbindung wiederherzustellen, sondern darin, zu speichern, welche Verbindung korrekt ist. Gut.
Dafür hast du zwei Möglichkeiten:
1) du speicherst das in einem AD-Attribut. Wie du schon festgestellt hast, sind die Exchange-Attribute (u.a. die Extension-Attribute) nicht geeignet, weil sie zusammen mit dem Postfach gelöscht werden. Blieben andere, wie z.B. Description/Notes, falls ihr diese nicht anderweitig nutzt. Ein geeignetes müsstest du dir selber heraussuchen, je nachdem, welche ihr schon nutzt. Das Vorgehen sollte das gleiche sein, dass du jetzt für das extensionAtt schon genutzt hast (vielleicht anderes cmdlet wie set-user zum Setzen des Wertes)
2) du nimmst einen externen Speicherort. Z.B. kannst du jeden Woche (auch automatisiert) einen Export der vorhandenen Daten als csv machen. Etwa get-mailbox | select DisplayName, PrimarySMTPAddress, ExchangeMailboxGUID,.... | export-csv $filename (wobei man als Bestandteil von $filename das aktuelle Datum nehmen kann). Noch eleganter (und auch nicht schwer) wäre ein Export in eine SQL-DB. So ein Export kann einen echten Mehrwert haben, wenn man z.B. noch die aktuelle Mailboxgröße mit exportiert, man hat dann immer einen passenden Report. Und wenn irgendjemand auf einmal ein Gruppenpostfach vermisst kann man auch feststellen, wann es noch vorhanden war. Wenn du dann ein Postfach wiederherstellen willst kannst du entweder die entsprechende Zeile aus dem CSV herauskopieren und an ein Skript übergeben, oder du kapselst auch das in ein Skript, dass dann die CSV einmal durchläuft, und nach dem von dir eingegebenen Namen sucht.
Egal welchen Speicherort du wählst: du solltest die Speicherung nicht nur auf die MailboxGUID beschränken. z.B. gehen auch die E-Mail-Adressen beim Löschen und Wiederherstellen verloren, das kann sehr ärgerlich sein. Ebenso alle ExtensionAttribute. Auch den LegacyExchangeDN nochmal irgendwo zu haben kann nützlich sein.
Gruß
Filipp