[PowerShell] Email-Group-Memberships of ADUser

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/powershell-email-group-memberships-of-aduser_260308/page_1 - zur Vollversion wechseln!


daisho schrieb am 14.07.2022 um 08:06

Hat von euch zufällig schon jemand ein PowerShell Script (oder Befehl) dazu herumliegen?
[in welchen Email-Verteilern ist User XYZ]
Optional schreibt's das gleich in ein CSV oder so zum auswerten.

Ich vermute man braucht dazu die Exchange Management Shell Tools, und es geht vermutlich um "Distribution Groups"?
Wenn nicht werde ich mir das bei Gelegenheit mal Googlen.


daisho schrieb am 14.07.2022 um 10:26

Hm, man muss dafür scheinbar in eine lokale Exchange Management Shell oder in eine solche Session.
Wenn ich das mit Office365.com direkt mache ($Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ ...) dann ist eine Suche via Get-Distribution... commands oder gar foreach Schleifen super langsam und wird wohl nie enden bzw. nicht in einem vernünftigem Zeitrahmen.


UnleashThebeast schrieb am 14.07.2022 um 10:41

Theoretisch gehts auch ohne einer Exchange Management Shell, kommt aber auch aufs Environment drauf an und ob die AD user wirklich brav in Distributiongroups im AD sind. Bin grad im Urlaub, wenn bis Montag keiner schneller is kann ich dir a fertiges Codesnippet posten, das ich auch für sowas hab.


hynk schrieb am 14.07.2022 um 10:46

Du kannst dieses Modul verwenden um auch aus der lokalen Shell auf den Online Exchange zu kommen:
https://docs.microsoft.com/en-us/po...iew=exchange-ps

Vielleicht funktionierts mit dem Snippet von hier:

Code:
$Mailbox=get-Mailbox [email]user@domain.com[/email]
$DN=$mailbox.DistinguishedName
$Filter = "Members -like ""$DN"""
Get-DistributionGroup -ResultSize Unlimited -Filter $Filter

Zum ausgeben in ein File kannst es ja dreckig über Get-Transcript machen, wenns dir der Inhalt der File nicht wichtig ist.
Ansonsten über Select-Object und Export-Csv.

Das Script hier geht zwar in eine andere Richtung von der Anforderung her, aber könnte man denke ich für deine Zwecke missbrauchen.

Hab nichts zur Verfügung wo ich dir das gerade testen könnte ;)


daisho schrieb am 14.07.2022 um 10:54

Das hat ziemlich gut geklappt mit dem EOM tool:
Install-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Die Liste zeigt mir allerdings sehr wenige Einträge an. Für meinen eigenen Account stehen da 4 Einträge, habe lt. Outlook Client (als "Memberships") allerdings 12 (und da sind auch welche dabei die nicht verschachtelt sind sondern wo ich direkt in der Gruppe stehe.

/Edit: Ich probiere mal das zweite Script, das checked scheinbar alle SMTP Adressen der Groups.


mr.nice. schrieb am 14.07.2022 um 11:07

Es ist übrigens eine durchaus wertvolle Information, ob eine DistributionGroup nur das, oder auch eine MailUniversalSecurityGroup ist.
Dank -RecipientType im Script von Ali Tajran ist das eh gut abgedeckt.


hynk schrieb am 14.07.2022 um 11:41

Ich würd auch auf eine Verschachtelung tippn, aber wenns das nicht ist, dann keine Ahnung. Möglicherweise andere Gruppentypen?


daisho schrieb am 14.07.2022 um 13:09

Das zweite Script ist schon mal super weil es einfach alles durchforstet und ein CSV erstellt mit sämtlichen Einträgen.
Leider zeigt das bei mir z.B. auch nur dieselben 4 Einträge an. Vielleicht sind die anderen "Memberships" keine DistributionGroups, idk. Vielleicht weiß die IT da mehr, ich hab da leider nicht all zu viel Zeit zum reinstecken (ist nicht für mich oder meine Arbeit).




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024