Mitglieder einer Active Directory-Gruppe abfragen

In Active Directory gibt es also eine Gruppe namens WebSiteUsers, die verwendet wird, um den Zugriff auf einen Ordner zu ermöglichen, den ich über IIS hoste. Ich habe mich gefragt (mit DSQuery, ADFind oder einem frei verfügbaren Tool), wie man Folgendes macht:

  1. Wie frage ich den Distinguished Name von WebSiteUsers ab (nehmen wir an es ist ein paar OU tief in AD begraben)?

  2. Wie frage ich WebSiteUsers ab, um eine Liste von Benutzern zu erstellen (in human lesbares Format), das ich kann vergleichen Sie gegen eine andere Gruppe zu machen sicher, dass alle Personen, die Zugriff auf diese Ressource benötigen, waren hinzugefügt? Angenommen, WebSiteUsers hat für dieses Beispiel einige tausend konten hinzugefügt, um es so visuelle Inspektion ist keine Option. Ich würde lieber Excel verwenden, um die Listen der Benutzer zu vergleichen, also exportieren einer CSV oder einer Art Textdatei, die ich in Excel bearbeiten kann wäre ideal.

Author: Richie086, 2013-05-22

1 answers

Um den DN zu finden, führen Sie den Befehl dsquery group -name WebSiteUsers


Wenn Sie einen Domänencontroller für PowerShell eingerichtet haben (Sie sollten; es ist großartig), können Sie den Befehl $WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com' und $WebSiteUsers | Export-CSV ausführen, um ihn in eine CSV auszugeben. Sie können auch den Befehl Compare-Object wie folgt verwenden:

$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
$OtherGroupUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=OtherGroups,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
Compare-Object -ReferenceObject $WebSiteUsers -DifferenceObject $OtherGroupUsers -Property Name

Dadurch wird eine Liste von Namen ausgelöst, die aus der einen oder anderen Gruppe ausgelassen werden. (Fügen Sie -IncludeEqual hinzu, wenn Sie alle sehen möchten.) Dies erleichtert die Sichtprüfung erheblich:

Jim Bob                      =>                                                                                               
Suzie Q                      <=                                                                                               
Harold Johnson               <=  

Wenn Sie möchten, fügen Sie jeder, dass ein mitglied der anderen Gruppe der WebSiteUsers-Gruppe:

Compare-Object $OtherGroupUsers $WebSiteUsers | Where {$_.SideIndicator -eq '=>'} | foreach{Add-ADGroupMember -Identity WebSiteUsers -Members $_}

Könnte nicht schaden, dem Befehl Add-ADGroupMember ein-WhatIf hinzuzufügen, um zu überprüfen, ob es das tun wird, was beabsichtigt ist.


Sie können diese Liste auch über das Active Directory-Benutzer-und Computer-Snap-In abrufen. Sie benötigen RSAT installiert, um dies von Ihrer Workstation aus zu tun, andernfalls können Sie sich bei einem Domänencontroller anmelden und ihn öffnen.

Klicken Sie mit der rechten Maustaste auf Gespeicherte Abfragen und wählen Sie Neu, Query:

geben Sie hier die Bildbeschreibung ein

Geben Sie ihm einen Abitrary-Namen und eine kurze Beschreibung und klicken Sie dann auf Abfrage definieren:

geben Sie hier die Bildbeschreibung ein

Wählen Sie unter Find: Custom Search. Klicken Sie auf Feld und wählen Sie Benutzer, Mitglied von

geben Sie hier die Bildbeschreibung ein

Geben Sie den Namen der Gruppe ein, die Sie einschließen möchten, und klicken Sie auf Hinzufügen:

geben Sie hier die Bildbeschreibung ein

Jetzt können Sie diese Liste in ADUC anzeigen. Um es zu exportieren, klicken Sie auf die Schaltfläche Liste Exportieren. Dies wird zu einem tabulatorgetrennten Text ausgegeben Datei.

geben Sie hier die Bildbeschreibung ein

 3
Author: rtf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-05-22 22:32:22