Der Befehl „dsquery“ gehört zu den „Directory Service„-Werkzeugen und ermöglicht es nach Objekten im Active Directory (AD) zu suchen. Dabei verfügt der Befehl über sehr viel verschiedene Parameter, die es Administratoren u.a. ermöglichen, nach Benutzern, Computern oder anderen AD Objekten zu suchen. Dieser DSQUERY Anleitung wird Ihnen einen umfassenden Überblick über den „dsquery“-Befehl geben, seine Anwendungsmöglichkeiten, Syntax, Beispiele und Best Practices.

Was ist dsquery?

Der Befehl „dsquery“ ist ein Befehlszeilentool, das in Windows Server-Betriebssystemen verfügbar ist. Es dient dazu, Active Directory nach Objekten wie Benutzern, Computern, Gruppen, Organisationseinheiten (OUs) und anderen zu durchsuchen. Die Fähigkeit, spezifische Abfragen durchzuführen und detaillierte Informationen zu erhalten, macht „dsquery“ zu einem unverzichtbaren Werkzeug für Administratoren.

Installation und Voraussetzungen

dsquery“ ist standardmäßig auf Windows Server-Betriebssystemen installiert, beginnend mit Windows Server 2003. Es ist Teil der „Active Directory Domain Services (AD DS)“-Rolle. Für Desktop-Betriebssysteme wie Windows 10 kann es erforderlich sein, die „Remote Server Administration Tools (RSAT)“ zu installieren, um Zugriff auf „dsquery“ zu erhalten.

Installation der RSAT-Tools

Um RSAT-Tools auf einem Windows 10-Computer zu installieren, gehen Sie wie folgt vor:

  1. Öffnen Sie die Einstellungen.
  2. Gehen Sie zu „Apps“ und dann zu „Optionale Features„.
  3. Klicken Sie auf „Feature hinzufügen„.
  4. Suchen Sie nach „RSAT: Active Directory Domain Services and Lightweight Directory Tools“ und installieren Sie es.

Nach der Installation können Sie „dsquery“ über die Eingabeaufforderung oder PowerShell verwenden.

Grundlegende Syntax

Die allgemeine Syntax des „dsquery„-Befehls lautet:

dsquery <Objekttyp> <Suchkriterien> <Optionen>

Hierbei sind:

  • <Objekttyp> der Typ des AD-Objekts, das durchsucht werden soll (z.B. user, computer, group, ou).
  • <Suchkriterien> die Bedingungen, nach denen gesucht werden soll.
  • <Optionen> zusätzliche Optionen zur Verfeinerung der Suche.

Beispiel für die Suche nach Benutzern

Ein einfaches Beispiel, um alle Benutzer im Active Directory zu suchen:

dsquery user

Dies gibt eine Liste aller Benutzer im AD zurück.

Beispielbefehle für dsquery user

Suche nach allen Benutzern mit dem Namen „John“:

dsquery user -name John*

Suche nach deaktivierten Benutzerkonten:

dsquery user -disabled

Suche nach Benutzern, die seit mehr als 90 Tagen inaktiv sind:

dsquery user -inactive 90

Suche nach Benutzern, deren Passwort älter als 180 Tage ist:

dsquery user -stalepwd 180

Mit „dsquery user“ ist es auch möglich, eine Liste der Homeverzeichnisse, des Home-Laufwerks und des Profilpfad der AD-User zu erstellen.

Häufig verwendete Optionen und Filter

dsquery“ bietet eine Vielzahl von Optionen und Filtern, um die Suchergebnisse zu präzisieren. Hier sind einige der wichtigsten:

Optionen für Benutzer

  • -name <Name>: Sucht nach Benutzern mit einem bestimmten Namen.
  • -samid <SAM Account Name>: Sucht nach Benutzern mit einem bestimmten SAM-Konto.
  • -inactive <Tage>: Sucht nach Benutzern, die seit einer bestimmten Anzahl von Tagen inaktiv sind.
  • -disabled: Listet deaktivierte Benutzerkonten auf.

Optionen für Computer

Optionen für Gruppen

  • -name <Name>: Sucht nach Gruppen mit einem bestimmten Namen.
  • -desc <Beschreibung>: Sucht nach Gruppen mit einer bestimmten Beschreibung.
  • -samid <SAM Account Name>: Sucht nach Gruppen mit einem bestimmten SAM-Konto.

Optionen für Organisationseinheiten (OUs)

  • -name <Name>: Sucht nach OUs mit einem bestimmten Namen.
  • -desc <Beschreibung>: Sucht nach OUs mit einer bestimmten Beschreibung.

Erweiterte Suchabfragen

Neben den grundlegenden Suchoptionen können Sie auch komplexere Abfragen durchführen, um präzisere Ergebnisse zu erhalten.

Beispiel: Suche nach Benutzern in einer bestimmten OU

Um Benutzer in einer spezifischen Organisationseinheit zu suchen, verwenden Sie den -scope-Parameter:

dsquery user "ou=Marketing,dc=beispiel,dc=com"

Beispiel: Suche nach inaktiven Computern

Um alle Computer zu finden, die seit mehr als 30 Tagen inaktiv sind:

dsquery computer -inactive 30

Beispiel: Suche nach deaktivierten Benutzern

Um alle deaktivierten Benutzerkonten zu finden:

dsquery user -disabled

Integration mit anderen Tools

dsquery“ kann hervorragend mit anderen Befehlszeilentools kombiniert werden, um komplexe Aufgaben zu automatisieren. Eine häufige Kombination ist die Verwendung von „dsquery“ zusammen mit „dsmod„, „dsget“ oder „dsrm„, um gefundene Objekte zu ändern oder zu löschen.

Beispiel: Deaktivieren inaktiver Benutzer

Sie können eine Liste inaktiver Benutzer abrufen und diese dann deaktivieren:

dsquery user -inactive 180 | dsmod user -disabled yes

Beispiel: Löschen inaktiver Computer

Ähnlich können Sie inaktive Computer löschen:

dsquery computer -inactive 180 | dsrm -noprompt

Best Practices

Um das Beste aus „dsquery“ herauszuholen, sollten Administratoren einige Best Practices beachten:

Regelmäßige Abfragen

Führen Sie regelmäßige Abfragen durch, um veraltete oder inaktive Objekte im AD zu identifizieren und zu bereinigen.

Skripterstellung

Erstellen Sie Skripte, um wiederkehrende Aufgaben zu automatisieren. Dies spart Zeit und reduziert die Fehleranfälligkeit.

Ergebnisüberprüfung

Überprüfen Sie die Ergebnisse von „dsquery„-Befehlen sorgfältig, bevor Sie Massenänderungen vornehmen. Ein Fehler kann erhebliche Auswirkungen auf Ihre AD-Umgebung haben.

Dokumentation

Dokumentieren Sie Ihre Abfragen und Skripte. Dies erleichtert die Nachverfolgung und zukünftige Anpassungen.

Beispielskripte

Hier sind einige nützliche Beispielskripte, die zeigen, wie Sie „dsquery“ in der Praxis verwenden können.

Skript zur Identifikation und Deaktivierung inaktiver Benutzer

Dieses Skript sucht nach Benutzern, die seit mehr als 90 Tagen inaktiv sind, und deaktiviert deren Konten:

@echo off
echo Suche nach inaktiven Benutzern...
dsquery user -inactive 90 > inaktive_benutzer.txt
echo Deaktiviere inaktive Benutzer...
for /f "tokens=*" %%i in (inaktive_benutzer.txt) do dsmod user %%i -disabled yes
echo Fertig.

Skript zur Bereinigung von Computerkonten

Dieses Skript sucht nach Computerkonten, die seit mehr als 180 Tagen inaktiv sind, und löscht diese:

@echo off
echo Suche nach inaktiven Computern...
dsquery computer -inactive 180 > inaktive_computer.txt
echo Lösche inaktive Computer...
for /f "tokens=*" %%i in (inaktive_computer.txt) do dsrm %%i -noprompt
echo Fertig.

Übersicht über die DSQUERY Parameter

Hier ist eine Tabelle mit allen dsquery-Parametern und einer kurzen Erklärung dazu:

DSQUERY ParameterErklärung
-oGibt das Ausgabeformat an. Standard ist DN (Distinguished Name).
-sDer Name des Servers, auf dem die Abfrage ausgeführt wird.
-uDer Benutzername für die Authentifizierung.
-pDas Kennwort für die Authentifizierung.
-qVermeidet die Ausgabe von Fehlernachrichten.
-dDer Name der Domäne, in der die Abfrage ausgeführt wird.
-rZeigt die Abfrageergebnisse rekursiv an.
-gcVerwendet den globalen Katalog für die Abfrage.
-scopeLegt den Suchbereich fest (base, onelevel, subtree).
-limitBegrenzt die Anzahl der zurückgegebenen Einträge.
-startnodeStartet die Abfrage in einem bestimmten Knoten.
-filterVerwendet einen benutzerdefinierten LDAP-Filter für die Abfrage.
-nameSucht nach Objekten mit einem bestimmten Namen.
-descSucht nach Objekten mit einer bestimmten Beschreibung.
-samidSucht nach Objekten mit einem bestimmten SAM-Kontonamen.
-inactiveSucht nach Objekten, die seit einer bestimmten Anzahl von Tagen inaktiv sind.
-stalepwdSucht nach Objekten mit alten Kennwörtern.
-disabledListet deaktivierte Objekte auf.
-memberSucht nach Objekten, die Mitglieder einer bestimmten Gruppe sind.
-memberofSucht nach Objekten, die Mitglied einer bestimmten Gruppe sind.
-expandErweitert die Gruppensuche auf verschachtelte Gruppen.
-lZeigt detaillierte Informationen an.
-attrZeigt die angegebenen Attribute der Objekte an.
-upnSucht nach Objekten mit einem bestimmten UPN (User Principal Name).
-dnZeigt die Distinguished Names der Objekte an.
-subtreeDurchsucht das gesamte Verzeichnis (subtree).
-gcsubtreeDurchsucht das gesamte Verzeichnis unter Verwendung des globalen Katalogs.
-locateFindet Objekte in einer bestimmten geografischen Region.

Diese Tabelle fasst die verschiedenen Parameter des „dsquery-Befehls“ und deren Verwendung zusammen, um Ihnen eine schnelle Referenz für die Anwendung dieses mächtigen Werkzeugs zu bieten.

Fehlersuche und Troubleshooting

Bei der Arbeit mit „dsquery“ können verschiedene Probleme auftreten. Hier sind einige Tipps zur Fehlersuche und Behebung:

Berechtigungen

Stellen Sie sicher, dass Sie die notwendigen Berechtigungen haben, um die gewünschten Abfragen und Änderungen im AD durchzuführen. Oftmals erfordern bestimmte Operationen administrative Rechte.

Syntaxfehler

Überprüfen Sie die Syntax Ihrer Befehle sorgfältig. Ein kleiner Fehler kann dazu führen, dass der Befehl fehlschlägt oder unerwartete Ergebnisse liefert.

Netzwerkverbindungen

Stellen Sie sicher, dass Sie eine stabile Netzwerkverbindung zum Domain Controller haben. Netzwerkprobleme können zu Fehlermeldungen führen.

Logging und Protokollierung

Verwenden Sie Logging, um Ihre Aktivitäten zu protokollieren. Dies kann bei der Fehlersuche hilfreich sein, um zu sehen, welche Befehle ausgeführt wurden und welche Ergebnisse sie geliefert haben.

Fazit

Der „dsquery„-Befehl ist ein mächtiges Werkzeug für Administratoren, die mit Active Directory arbeiten. Der Befehl lässt sich schnell nach der Installation der Remote Server Administration Tools von Microsoft nutzen. Mit seinen vielfältigen Suchmöglichkeiten und der Fähigkeit, in Kombination mit anderen Tools verwendet zu werden, bietet „dsquery“ eine flexible und effiziente Methode zur Verwaltung und Pflege von AD-Objekten. Durch das Verständnis der grundlegenden und erweiterten Funktionen von „dsquery“ können Administratoren ihre täglichen Aufgaben effektiver und präziser erledigen. Nutzen Sie die Möglichkeiten, die „dsquery“ bietet, um Ihre AD-Umgebung sauber und organisiert zu halten.