4077 30 Geschrieben 7. März 2019 Melden Teilen Geschrieben 7. März 2019 Ich habe mir eine LDAP-Abfrage für eine Abfrage von einem Linux-Webserver im "Active Directory Users & Computers" gebastelt, die alle aktiven Benutzer mit einer Telefonnummer zurückgeben soll. (&(&(objectCategory=user)(objectClass=user)(telephoneNumber=*)(userAccountControl=512))) Allerdings fehlen im Ergebnis rund 17 Datensätze im Vergleich zur Powershell-Abfrage. (Get-ADUser -Filter * -Properties * | ? {$_.enabled -eq $true -and $_.telephonenumber -ne $null} | sort name | se lect name, telephonenumber) . Wo ist der Fehler? Danke vorab 4077 Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 7. März 2019 Melden Teilen Geschrieben 7. März 2019 Vergleiche einen Datensatz der angezeigt wird, mit einem Datensatz der nicht angezeigt wird. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 7. März 2019 Melden Teilen Geschrieben 7. März 2019 Moin, der Fehler ist der numerische Wert für userAccountControl. Es handelt sich dabei um ein Bitmap-Feld. Das zehnte Bit mit dem Dezimalwert 512 gibt an, dass ein Konto aktiviert ist. Der numerische Wert 512 steht aber nur dann in dem Feld, wenn kein anderes Flag gesetzt ist. Der (fiktive) Wert 513 etwa könnte auch angeben, dass das Konto aktiviert ist, weil die 512 ja gesetzt ist. Dein Filter auf 512 enthielte diesen Datensatz aber nicht. Du müsstest hier also mit einem Bitfilter arbeiten. [Whitepaper: LDAP-Filter für Active Directory | faq-o-matic.net]https://www.faq-o-matic.net/2009/09/24/whitepaper-ldap-filter-fr-active-directory/ In dem PDF auf Seite 24 erklärt. Gruß, Nils Zitieren Link zu diesem Kommentar
4077 30 Geschrieben 7. März 2019 Autor Melden Teilen Geschrieben 7. März 2019 Ah, OK. Dann werde ich mir das mal "geben". Danke Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 7. März 2019 Melden Teilen Geschrieben 7. März 2019 Moin, ich hab grad noch mal selbst auf Seite 24 gesehen ... meine obige Darstellung war nur vom Prinzip her richtig, im Detail aber leider nicht. Entscheidend ist nicht Bit 9 (Dezimalwert 512, "NORMAL_ACCOUNT"), sondern Bit 1. Wenn dieses NICHT gesetzt ist, ist der Account aktiv. In der Praxis kann aber eben durchaus auch 66048 dort stehen, was auch ein aktiver Account ist. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.