Das Auffinden von Objekten in Active Directory (wie Benutzern, Gruppen oder Computern) anhand ihres Namens ist standardmäßig etwas umständlich. Das ADUC-Snap-In ( dsa.msc ) kann in den meisten Fällen keine Platzhalter oder reguläre Ausdrücke verarbeiten. Die Suche nach „alles mit ‚sql‘“ im Namen ist daher eher ein Ratespiel als eine gezielte Suche. Versuche man, direkt mit *sql* oder anderen Platzhaltern zu suchen, schlägt dies in der Regel fehl – was frustrierend ist, da man eigentlich erwarten würde, dass Platzhalter unterstützt werden. Aber keine Sorge, es gibt einige Tricks, um dieses Problem zu umgehen, insbesondere mithilfe von LDAP-Abfragen oder PowerShell, die deutlich mehr Kontrolle bieten. So lassen sich die „sql“-Gruppen oder -Benutzer schnell finden, egal wo sie sich in AD befinden.
Folgendes ist zu beachten: Die integrierten Tools unterstützen Wildcards nicht so, wie man es erwarten würde. Sie können jedoch spezifische LDAP-Abfragen oder PowerShell-Befehle ausführen, die die eigentliche Arbeit übernehmen. Wenn Sie also keine Lust mehr haben, sich mit der grafischen Benutzeroberfläche herumzuschlagen, helfen Ihnen diese Methoden, Ihre Objekte schneller und zuverlässiger zu finden – manchmal sogar bei Teilübereinstimmungen. Es ist nicht immer ganz einfach, aber sobald Sie die Syntax verstanden haben, ist es meist nur noch Kopieren und Einfügen. Denn natürlich macht Windows es einem unnötig schwer, nicht wahr?
So finden Sie Active Directory-Benutzer oder -Gruppen mit ADUC
LDAP-Abfragen in ADUC für Mustervergleich verwenden
Dies ist ein häufig geäußerter Kritikpunkt: Die Suche nach „Name enthält ’sql’“ wird in der grafischen Benutzeroberfläche nicht direkt unterstützt, obwohl LDAP dies eigentlich kann. Um den LDAP-Abfrageassistenten zu öffnen, führen Sie folgenden Befehl aus:
%SystemRoot%\SYSTEM32\rundll32.exe dsquery, OpenQueryWindow
Dadurch öffnet sich ein Suchfenster, in dem Sie Ihre LDAP-Abfrage erstellen können, z. B.so: [ name=*sql*Beispielabfrage einfügen].Der entscheidende Punkt dabei ist: Sie weisen LDAP an, Objekte zu finden, deren Name irgendwo „sql“ enthält. Dies wird von der ADUC-Benutzeroberfläche im Standard-Suchfeld nicht unterstützt.
Wählen Sie im Suchfenster „ Benutzerdefinierte Suche “ und wechseln Sie zur Registerkarte „Erweitert“. Geben Sie dann „sql“ ein name=*sql*. Active Directory sucht nun nach allen Objekten, deren Namen „sql“ enthalten – ziemlich praktisch, sobald es funktioniert. Um die Suche auf Gruppen einzugrenzen, verwenden Sie (&(objectcategory=group)(name=*sql*))„sql“.Das ist so, als würde man LDAP explizit mitteilen: „Nur Gruppen mit ‚sql‘ im Namen“.
Warum das hilft und wann man es anwenden sollte
Das ist hilfreich, wenn Sie einen Teil eines Namens kennen, aber alle Objekte finden möchten, die diesen Teil enthalten, unabhängig von ihrer genauen Position – etwas, das die Standard-Benutzeroberfläche nicht optimal umsetzt. Sie erhalten alle übereinstimmenden Objekte angezeigt, egal ob „sql“ am Anfang, in der Mitte oder am Ende steht. Ein kleiner Hinweis: Wenn Ihre LDAP-Abfragesyntax fehlerhaft ist oder Sie vergessen haben, Zeichen zu maskieren, werden möglicherweise keine Ergebnisse angezeigt. Auf manchen Systemen kann die Suche etwas dauern oder beim ersten Mal nicht funktionieren; ein erneuter Versuch oder ein Neustart kann das Problem beheben.
Computer in Active Directory suchen
Verwenden Sie LDAP für Wildcard-Suchen auf Computern.
Wenn Sie nach Computern suchen müssen, deren Name irgendwo „sql“ enthält, müssen Sie eine ähnliche LDAP-Abfrage in der benutzerdefinierten Suche verwenden:
(&(objectcategory=computer)(name=*sql*))
Dies ist besonders praktisch, wenn Sie Server oder Workstations mit einer Namenskonvention prüfen. Die Standardsuche findet keine Teilübereinstimmungen, daher ist LDAP die richtige Wahl für flexiblere Anforderungen.
Verwenden von PowerShell zum Auffinden von AD-Objekten
Warum PowerShell der wahre Lebensretter ist
Ehrlich gesagt, macht PowerShell das alles viel einfacher, sobald man die Syntax verstanden hat. Es ist schneller und deutlich flexibler. Die Grundidee: das Active Directory-Modul importieren und bestimmte Cmdlets ausführen. Falls noch nicht geschehen, beginnen Sie mit Folgendem:
Import-Module ActiveDirectory
Um nach Gruppen mit „sql“ im Namen zu suchen, können Sie folgenden Befehl ausführen:
Get-ADGroup -Filter {name -like "*sql*"} -Properties Description, Info | Select-Object Name, SamAccountName, Description, Info | Sort-Object Name
Das gleiche Prinzip gilt für Benutzer und Computer:
Get-ADUser -Filter {name -like "*sql*"} Get-ADComputer -Filter {name -like "*sql*"}
Für eine umfassendere Suche über alle Objekttypen hinweg versuchen Sie Folgendes:
Get-ADObject -Filter {name -like "*sql*"} -Properties * | Select-Object sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | Format-Table
Ein weiterer Trick: Sie können einen rohen LDAP-Filter direkt verwenden, was äußerst nützlich ist, wenn Sie nach einer bestimmten Objektklasse suchen. Beispiel:
Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=DE, DC=woshub, DC=com"
Warum das funktioniert und wann man es ausprobieren sollte
PowerShell-Befehle umgehen die Einschränkungen der grafischen Benutzeroberfläche und ermöglichen die Verwendung von Platzhaltern und regulären Ausdrücken. Außerdem können Sie Automatisierungen skripten oder Abfragen für später speichern. Unter Windows mit aktuellen PowerShell-Versionen funktioniert dies in der Regel sehr zuverlässig. Gelegentlich kann es jedoch zu langsamen Antworten oder sogar leeren Ergebnissen kommen – wahrscheinlich aufgrund fehlender Berechtigungen oder einer falschen Suchbasis. Insgesamt ist es aber deutlich schneller als die wiederholte Nutzung der grafischen Benutzeroberfläche.
Zusammenfassung
Die Verwendung von Wildcards in Active Directory ist ohne PowerShell oder LDAP-Tricks nicht ganz einfach, aber sobald diese Befehle und Abfragen eingerichtet sind, wird das Auffinden von Objekten mit Teilnamen zum Kinderspiel. Es erfordert etwas Einarbeitungszeit, vor allem wegen der Syntax, aber es lohnt sich, um schwer auffindbare Konten oder Gruppen aufzuspüren. Bei manchen Konfigurationen, insbesondere bei LDAP-Filtern, sind ein paar Versuche nötig, aber nach einigen Versuchen läuft alles reibungslos.
Bedenken Sie: AD-Tools sind standardmäßig recht eingeschränkt. Daher ist die Nutzung von LDAP und PowerShell der richtige Weg. Dieser Ansatz spart definitiv viel Zeit, insbesondere bei größeren Umgebungen oder komplexen Namenskonventionen. Hoffentlich hilft das jemandem, die endlose manuelle Suche zu vermeiden!
Zusammenfassung
- Verwenden Sie rundll32.exe, um das LDAP-Abfragefenster für erweiterte Suchvorgänge zu öffnen.
- Erstellen Sie LDAP-Abfragen wie diese
name=*sql*oder(&(objectcategory=group)(name=*sql*))für die Mustererkennung. - Nutzen Sie die PowerShell-Befehle Get-ADGroup, Get-ADUser und Get-ADComputer mit Platzhaltern und LDAP-Filtern.
- Sollten keine Ergebnisse angezeigt werden, überprüfen Sie bitte immer Ihre SearchBase- und LDAP-Syntax.