Jump to content

User auslesen mit Hinweis gesperrt/nicht gesperrt


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo liebe Kollegen,

 

ich komme leider nicht weiter und bitte euch um Hilfe!

 

Ich möchte die User aus dem AD auslesen und auch wissen, ob sie gesperrt

sind oder nicht (Win Server 2008).

 

Dazu bin ich wie folgt vorgegangen:

 

Um "verrutschte" User in anderen Container ebenfalls zu erwischen habe

ich den obersten Container gewählt:

 

Shell auf ->

 

csvde -d "OU=Domänencontainer,DC=Domäne,DC=de" -l "sAMAccountName,sAMAccountType,userPrincipalName" -f c:\ad-user.csv

 

Leider habe ich nun auch alle Gruppen, Computer, Kontakte etc mit über 3000

Einträgen :shock: mit in der csv-Datei. Es gibt bei weitem nicht so viele Benutzerkonten.

 

Außerdem finde ich kein Attribut, was mir explizit verdeutlicht, dass der User

gesperrt oder nicht gesperrt ist. Habt ihr eine Lösung für mich parat? :confused:

 

Grüße,

nonliquet

Link zu diesem Kommentar

Servus,

 

deine Abfrage stimmt nicht.

Wenn dich lediglich die gesperrten Benutzer interessieren egal in welchem Container sich die Benutzer befinden, musst du gezielt das Attribut "lockoutTime" abfragen. Die Abfrage könnte so aussehen:

 

Csvde -f "C:\Temp\GesperrteBenutzer.txt" -r "(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1))" -l sAMAccountName,sAMAccountType,userPrincipalName

 

 

Du könntest zwar eine Abfrage durchführen und dir dabei für jeden Benutzer das Attribut lockoutTime anzeigen lassen, doch das wird je nach Anzahl der Benutzer unübersichtlich. Die Abfrage könnte so aussehen:

 

Csvde -f "C:\Temp\AlleBenutzer.txt" -r "(&(objectClass=user)(objectCategory=person))" -l samaccountname,sAMAccountType,userPrincipalName,lockoutTime

 

Wenn dann bei lockoutTime solch ein Large Integer Wert eingetragen ist "129083854554461236", ist das Benutzerkonto gesperrt.

 

Daher solltest du, wenn es dir lediglich um die gesperrten Benutzer geht, die erste Abfrage von mir verwenden.

Link zu diesem Kommentar

Hallo Nils,

 

keine weiteren Fragen, das Skript ist mächtig und funktioniert, vielen Dank!

 

Hallo Daim,

 

ich habe die Befehlszeile ausgeführt, es wurden keine Einträge gefunden.

Somit habe ich die Attribute eines Gesperrten mit einem aktiven User verglichen

und festgestellt, dass die Werte gar nicht gesetzt sind.

Deswegen wohl auch die Aussage über nicht gefundene Einträge.

 

Gerne würde ich trotzdem mit deiner Funktion zum Ergebnis kommen, obwohl

ich die gewünschten Daten schon habe.

 

Grüße,

nonliquet

Link zu diesem Kommentar
ich habe die Befehlszeile ausgeführt, es wurden keine Einträge gefunden.

 

Dann existieren keine gesperrten Benutzerkonten. Man darf gesperrte Benutzerkonten (zu oft falsch eingegebene Kennwörter) nicht mit deaktivierten Benutzerkonten verwechseln.

 

Somit habe ich die Attribute eines Gesperrten mit einem aktiven User verglichen und festgestellt, dass die Werte gar nicht gesetzt sind.

 

Du hast also das Attribut "lockoutTime" überprüft.

 

Deswegen wohl auch die Aussage über nicht gefundene Einträge.

 

Dann ist das Konto nicht gesperrt. Das kannst du ja auch in den Eigenschaften des Benutzerkontos verifizieren, ob dort der Haken bei "Konto ist gesperrt" gesetzt ist oder nicht.

 

Gerne würde ich trotzdem mit deiner Funktion zum Ergebnis kommen, obwohl ich die gewünschten Daten schon habe.

 

Zur Klarstellung:

 

1. Bei einem Benutzerkonto das noch nie gesperrt wurde, der Benutzer sich also immer erfolgreich an der Domäne authentisieren konnte, enthält das Attribut "lockoutTime" als Wert "<Not Set>". Wie oft der Benutzer ein falsches Kennwort eingeben darf bis sein Konto gesperrt wird, ist von der Kennwortrichtlinie vorgegeben.

 

2. Hat ein Benutzer sein Kennwort (mehr als es in der Kennwortrichtlinie definiert ist) zu oft falsch eingegeben, wird sein Benutzerkonto gesperrt. Dabei wird in "lockoutTime" ein Large Integer Wert eingetragen, dass den Zeitpunkt der Kontosperrung darstellt.

 

3. Wird ein Benutzerkonto vom Admin entsperrt, erhält das Attribut "lockoutTime" in den Eigenschaften des Benutzerkontos den Wert "0". Daran kann man erkennen, welche Benutzerkonten vom Admin schon einmal entsperrt wurden.

 

4. Wenn ein Benutzerkonto nach einer definierten Wartezeit durch eine Gruppenrichtlinie automatisch wieder entsperrt wurde, wird in "lockoutTime" der Zeitpunkt der Kontosperrung als ein Large Integer Wert eingetragen. Das Attribut "lockoutTime" enthält dann zwar einen Wert, aber der Haken "Konto ist gesperrt" ist logischerweise nicht "mehr" gesetzt. Der Wert in lockoutTime wird also nicht genullt und bleibt bestehen.

 

Ist also eine Richtlinie definiert, in der ein Benutzer nach einer bestimmten Zeit automatisch wieder entsperrt wird, greift meine oben genannte erste Abfrage nicht. Dann muss errechnet werden ob die aktuelle Zeit größer ist als der Wert im Attribut "lockoutTime", plus die Zeit die ein Konto gesperrt bleiben soll (je nachdem wie es in der Kennwortrichtlinie definiert ist).

Link zu diesem Kommentar
  • 3 Wochen später...
  • 1 Jahr später...

Moin,

 

bitte für neue Fragen einen neuen Thread aufmachen und keinen alten kapern! Das Board warnt nicht umsonst.

 

Von welchem Skript redest du jetzt genau? Von José? Das ist zur Dokumentation gedacht und nicht für Abfragen, wie du auch der FAQ entnehmen kannst:

 

faq-o-matic.net » José: Version 3.0 ist da

 

Du suchst sowas:

faq-o-matic.net » Leichenzählung in Active Directory

 

oder sowas:

faq-o-matic.net » LUMAX: Schnelle Auswertung des Active Directory

 

Gruß, Nils

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...