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

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

 

 

 

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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).

Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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
Link zu diesem Kommentar


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"

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
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...