Kategorien

Scripting-Hilfe für ActiveDirectory

dsquery
dsquery ist sozusagen ein Vorsatzadapter zu den restlichen Kommandos. Diese erwarten nämlich immer einen DN, mit dem ein Objekt eindeutig identifiziert wird. Wenn Sie dieses Attribut nicht wissen (weil Sie beispielsweise alle Accounts deaktivieren möchten, die länger als vier Wochen nicht angemeldet waren), dann hilft Ihnen dsquery weiter. Als Ergebnis der Suche wird jeweils der DN auf die Standardausgabe ausgegeben und kann so direkt per Pipelining an dsmod und die anderen Kommandos übergeben werden.
Damit Sie nicht alle LDAP-Queries selbst erstellen müssen, existiert eine ganze Reihe von Unterkommandos für vorbereitete Suchen:
Tabelle: dsquery-Subkommandos Kommando Bedeutung
dsquery computer sucht nach Computerkonten
dsquery contact sucht nach Kontakten
dsquery subnet sucht nach Subnets
dsquery group sucht nach Gruppen
dsquery ou sucht nach Organisationseinheiten
dsquery site sucht nach Sites
dsquery server sucht nach Domain-Controllern
dsquery user sucht nach Benutzerkonten
dsquery quota sucht nach Quoteninformationen
dsquery partition sucht nach Verzeichnispartitionen
dsquery * erlaubt die freie Definition beliebiger LDAP-Anfragen

Beispiele


Bleiben wir bei unseren Kontakten aus den Beispielen mit csvde und ldifde: Auch hier sollen wieder alle Kontakte aus der OU „produktion“ gesucht werden. Im einfachsten Fall geben Sie folgendes Kommando ein:
Code 1dsquery contact TextansichtAls Ergebnis erhalten Sie folgende Ausgabe (auf meiner Maschine):
Code 1″CN=Norman Kerth,OU=Produktion,DC=shellbook,DC=com“ TextansichtCode 1″CN=Julius Caesar,OU=Produktion,DC=shellbook,DC=com“ TextansichtWird nämlich keine Definition des Startpunkts der Suche getroffen, dann gilt Folgendes: Root der Domain und der gesamte Baum abwärts. Dies zeigt sich besonders deutlich beim Subkommando für die Benutzer:
Code 1C:tmp>dsquery user TextansichtCode 1″CN=Administrator,CN=Users,DC=shellbook,DC=com“ 2″CN=Guest,CN=Users,DC=shellbook,DC=com“ 3″CN=SUPPORT_388945a0,CN=Users,DC=shellbook,DC=com“ 4″CN=krbtgt,CN=Users,DC=shellbook,DC=com“ 5″CN=Franz Testhuber,OU=Produktion,DC=shellbook,DC=com“ 6″CN=Student37,OU=Kurs,DC=shellbook,DC=com“ 7″CN=Student38,OU=Kurs,DC=shellbook,DC=com“ 8C:tmp> TextansichtEs werden die DNs aller Benutzer aus der gesamten Domain ausgegeben. Soll dies nicht der Fall sein, kann ein Startknoten angegeben werden:
Code 1dsquery user „ou=produktion,dc=shellbook,dc=com“ TextansichtAlternativ ist die Angabe der konstanten Werte forestroot oder domainroot möglich.Ein weiteres Beispiel zeigt, wie leicht unter Windows Server 2003 Abfragen des AD über die Kommandozeile fallen: Aufgelistet werden sollen die DNs aller Gruppen, in deren Namen die Zeichenfolge „domain“ vorkommt.
Code 1dsquery group -name *domain* TextansichtOptionen
Für jedes Subkommando ist eine Reihe von Optionen möglich, die zum Großteil über alle Subkommandos hin konsistent sind. Sie können sich die Liste der Optionen mit dem Kommando
Code 1dsquery /? Textansichtausgeben lassen.
Die wichtigsten gemeinsamen Optionen listet die folgende Tabelle auf. Einzelne Subkommandos definieren weitere Optionen, wie beispielsweise die Option -inactive für die Subkommandos user und computer.
Option Bedeutung
-scope Legt die Suchtiefe fest. Mögliche Werte sind subtree, onelevel oder base
-u Verwendet den Benutzernamen zur Anmeldung am AD
-p Verwendet das Passwort zur Anmeldung am AD
– q Unterdrückt alle Ausgaben, außer den Ergebnissen
– r Verfolgt Verweise (referrals) im AD. Ist per Default nicht aktiv
– gc Sucht im Global Catalog
– limit Wichtig! Legt fest, wie viele Objekte ausgegeben werden, auf die die Suchbedingungen passen. Ist dieser Wert 0, werden alle Objekte ausgegeben. Wird diese Option nicht angegeben, dann werden nur die ersten 100 Objekte ausgegeben!
– uc[i|o] Gibt an, dass Ein- oder Ausgaben bei Pipes im Unicode-Format vorliegen
– s Verwendet den angegebenen DC
– d Verwendet die angegebene Domain

Quelle:
http://www.tecchannel.de/server/windows/1761685/teil_3_activedirectory/index13.html