Jump to content

Verteiler rekursiv abfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem


wir benötigen eine Auswertung, von

verteilern und deren Berechtete user(mit Displaynamen)


istzustand:

verteiler 1
verteiler 2
verteiler 3
verteiler 4

verteiler 3 n 4 hat wieder verteiler und eine ebene auch noch verteiler, erst dann komemn die Members

 

destination der Verteiler
OUeasycredit.intern/Admin/OPFWew/ExSrv2/MSG011/Groups/

eine komplette auswertung über die OU ist auch sinfreii, da nur einige verteiler abgefragt werden sollen (evtl mit einem csv-imprtFile)

ich habe händisch folgendes gemacht:
Get-DistributionGroup -Identity "Verteiler 1" | Get-DistributionGroupMember|ft displayname

geht ist aber mühsam, kann mir jmd von Euch hier via PS Script (Schleife) weiterhelfen?

danke

 

 

 

Geschrieben

Ich habe so was mit AD Gruppen gemacht:

function Recurse-AdGroup ($group) {
    if((@(try{Get-ADGroup $group}catch{}).count) -gt 0){
        foreach($users in (Get-ADGroupMember $group)){
            Recurse-AdGroup $users.SamAccountName
        }
    }else{
        return $group
    }
}
 $users = Recurse-AdGroup $group

Geschrieben

Was willst Du jetzt hören?

 

Schleifen und Rekursion sind die Grundlage JEDER Scripting-Sprache. Wenn Dir diese Grundlage fehlt, dass wird dann erst aus Objekten, Attributen, Pipeline, usw. in der PowerShell?

 

Auch das Lesen von Scripten ist eine Grundbedienung. In Dukels Script ist nichts mit OU oder so. Du muss lediglich die Gruppe übergeben und bekommst die User rekursiv zurück. Wie er schreibt:

 

$users = Recurse-AdGroup $group

 

$group ist die Gruppe in $users stehen danach die Benutzer (genaugenommen der Anmeldename der Benutzer).

Geschrieben

Ich habs wie folgt gelöst.


$verteiler =  get-content verteiler.csv

foreach ($verteiler in $verteiler)
{
write-host $verteiler
Get-ADGroupMember "$verteiler" -Recursive | Get-ADUser -properties * | ft displayName,Name
}

geht rekursiv, aber kann nur Verteiler abfragen, keine SecurityGroups <-- wie kann ich das cmdlet umbauen, dass auch "SecurityGroups" abgefragt werden.

 

Get-DistributionGroup -Identity "AllePartnerbankenbetreuerDE" | Get-DistributionGroupMember |ft displayname,SamAccountName

kann verteiler & security Groups, geht aber nicht rekursiv

 

@ Robert hast du eine Idee?

Geschrieben (bearbeitet)

Sorry, ich muss auch mal arbeiten. ;)

 

geht rekursiv, aber kann nur Verteiler abfragen, keine SecurityGroups <-- wie kann ich das cmdlet umbauen, dass auch "SecurityGroups" abgefragt werden.

 

Kann ich nicht nachvollziehen. Geht bei mir problemlos:

 

[PS] C:\>Get-ADGroupMember "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=sm-rw,DC=local" -recursive | ft Name,ObjectClassName                                                        ObjectClass
----                                                        -----------
Administrator                                               user
Robert Wille                                                user
SERVER02                                                    computer
[PS] C:\>Get-ADGroupMember "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=sm-rw,DC=local" -Recursive | Get-ADUser -properties * | ft displayName,NamedisplayName                                                 Name
-----------                                                 ----
Administrator                                               Administrator
Robert Wille                                                Robert Wille
Get-ADUser : Unter "DC=sm-rw,DC=local" kann kein Objekt mit der ID "CN=SERVER02,CN=Computers,DC=sm-rw,DC=local" gefunde
n werden.
Bei Zeile:1 Zeichen:127
+ Get-ADGroupMember "CN=Organization Management,OU=Microsoft Exchange Security Groups,DC=sm-rw,DC=local" -Recursive | G
et-ADUser <<<<  -properties * | ft displayName,Name
    + CategoryInfo          : ObjectNotFound: (CN=SERVER02,CN=...=sm-rw,DC=local:ADUser) [Get-ADUser], ADIdentityNotFo
   undException
    + FullyQualifiedErrorId : Unter "DC=sm-rw,DC=local" kann kein Objekt mit der ID "CN=SERVER02,CN=Computers,DC=sm-rw
   ,DC=local" gefunden werden.,Microsoft.ActiveDirectory.Management.Commands.GetADUser

 

 

Der Fehler im zweiten Bild ist verständlich, da das ein Computer ist und kein User. Die Gruppe "Organization Management" ist eine Sicherheitsgruppe. Hätte mich auch sehr gewundert, dass Get-ADGroupMember keine Sicherheitsgruppen kann, denn das ist ja ein AD-CMDLET.

bearbeitet von RobertWi
Geschrieben


danke für deine Mühe,

 

Get-ADGroupMember "AlleMitarbeiterInnenITP" -Recursive | Get-ADUser -properties * | ft displayName,Name

 ""AlleMitarbeiterInnenITP = Mail  Universal Security Group""


Get-ADGroupMember : Cannot find an object with identity: 'AlleMitarbeiterInnenITP' under: 'DC=easycredit,DC=intern'.
At line:1 char:18
+ Get-ADGroupMember <<<<  "AlleMitarbeiterInnenITP" -Recursive | Get-ADUser -properties * | ft displayName,Name
    + CategoryInfo          : ObjectNotFound: (AlleMitarbeiterInnenITP:ADGroup) [Get-ADGroupMember], ADIdentityNotFoun
   dException
    + FullyQualifiedErrorId : Cannot find an object with identity: 'AlleMitarbeiterInnenITP' under: 'DC=easycredit,DC=
   intern'.,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

Get-ADGroupMember "Mail Universal Distribution group" -Recursive | Get-ADUser -properties * | ft displayName,Name
 --> da klappt aber NICHT mit Securitiy Gruppen"

Geschrieben

Moin,

 

wie gesagt, funktioniert problemlos:

 

PS C:\> 'test1','test2' | Get-ADGroup | ft Name,Group* -AutoSizeName  GroupCategory GroupScope
----  ------------- ----------
Test1  Distribution  Universal
Test2      Security  Universal PS C:\>'test1','test2' | Get-DistributionGroup | ft Name,Group* -autosizeName                   GroupType
----                   ---------
Test1                  Universal
Test2 Universal, SecurityEnabled PS C:\> 'test1' | Get-ADGroupMember -Recursive | Get-ADUser -properties * | ft displayName,NamedisplayName                                                 Name
-----------                                                 ----
BeXXX, MYYY                                                 mbeXXX
PS C:\> 'test2' | Get-ADGroupMember -Recursive | Get-ADUser -properties * | ft displayName,NamedisplayName                                                 Name
-----------                                                 ----
BeXXX, MYYY                                                 mbeXXX

 

test1 ist eine "Distribution  Universal", test2 ist "Security  Universal" und beide sind Mail-aktiviert.

 

Aus Deiner Fehlermeldung würde ich lesen, dass es die Gruppe "AlleMitarbeiterInnenITP" (grr..... grausige Verhunzung der deutschen Sprache) bei Dir nicht gibt.


Was sagt denn

 

Get-ADGroup "AlleMitarbeiterInnenITP" | ft Name,Group* -AutoSize

 

Alternativ kannst Du das auch mit dem DN probieren.

Geschrieben

haha, habs mir nocheinmal genauer angesehen.
du hast Recht, das cmdlet, kann auch Securty Groups abfragen.
mein Fehler/ Problem war, dass ich auf den Alias losgeh ... in meinem Fall war der Alias/ Displayname nicht der, der als eMailadresse hinterlegt war, d.h. mein AD Objekt/ security Gruppe wurde iwann mal umbenannt ...

danke

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...