Windows 2003 Shell Scripting
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:
Kommando |
Bedeutung |
|
sucht nach Computerkonten |
|
sucht nach Kontakten |
|
sucht nach Subnets |
|
sucht nach Gruppen |
|
sucht nach Organisationseinheiten |
|
sucht nach Sites |
|
sucht nach Domain-Controllern |
|
sucht nach Benutzerkonten |
|
sucht nach Quoteninformationen |
|
sucht nach Verzeichnispartitionen |
|
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:
dsquery contact
Als Ergebnis erhalten Sie folgende Ausgabe (auf meiner Maschine):
"CN=Norman Kerth,OU=Produktion,DC=shellbook,DC=com"
"CN=Julius Caesar,OU=Produktion,DC=shellbook,DC=com"
Wird 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:
C:\tmp>dsquery user
"CN=Administrator,CN=Users,DC=shellbook,DC=com"
"CN=Guest,CN=Users,DC=shellbook,DC=com"
"CN=SUPPORT_388945a0,CN=Users,DC=shellbook,DC=com"
"CN=krbtgt,CN=Users,DC=shellbook,DC=com"
"CN=Franz Testhuber,OU=Produktion,DC=shellbook,DC=com"
"CN=Student37,OU=Kurs,DC=shellbook,DC=com"
"CN=Student38,OU=Kurs,DC=shellbook,DC=com"
C:\tmp>
Es werden die DNs aller Benutzer aus der gesamten Domain ausgegeben. Soll dies nicht der Fall sein, kann ein Startknoten angegeben werden:
dsquery user "ou=produktion,dc=shellbook,dc=com"
Alternativ 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.
dsquery group -name *domain*
Optionen
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
dsquery <subcmd> /?
ausgeben lassen.
Die wichtigsten gemeinsamen Optionen listet die folgende Tabelle auf. Einzelne Subkommandos definieren weitere Optionen, wie beispielsweise die Option -inactive <wochen>
für die Subkommandos user
und computer
.
Option |
Bedeutung |
|
Legt die Suchtiefe fest. Mögliche Werte sind |
|
Verwendet den Benutzernamen zur Anmeldung am AD |
|
Verwendet das Passwort zur Anmeldung am AD |
|
Unterdrückt alle Ausgaben, außer den Ergebnissen |
|
Verfolgt Verweise (referrals) im AD. Ist per Default nicht aktiv |
|
Sucht im Global Catalog |
|
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! |
|
Gibt an, dass Ein- oder Ausgaben bei Pipes im Unicode-Format vorliegen |
|
Verwendet den angegebenen DC |
|
Verwendet die angegebene Domain |