nerd 28 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Hi, ich würde gerne eine Liste aus meinem AD ziehen, die alle Benutzer beinhaltet, die nicht disabled wurden. Sprich alle aktiven Benutzer. Der aktuelle query (der diese noch beinhaltet) lautet: dsquery user -d ad.local -uc -limit 0 -o upn > c:\users.txt Auf den Technet Seiten zu dem Thema bin ich leider nicht fündig geworden Microsoft Corporation Viele Grüße Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Hallo, versuch mal dsquery user -d ad.local -limit 0 | dsget user -disabled -dn > c:\users.txt Damit bekommst Du das Flag zurück. Die Ausgabe läßt sich dann beispielsweise mit find bzw. findstr filtern. Einfacher geht es sicherlich mit VB-Script o.ä. - davon habe ich nur leider überhaupt gar keine Ahnung. :D Hope it helps... [EDIT] So kannst Du es machen: dsquery * -filter (userAccountControl:1.2.840.113556.1.4.803:=2) [/EDIT] Gruß olc Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Servus, versuch mal da hast du etwas missverstanden. Er möchte es genau umgekehrt wissen ;) . Zitat: Sprich alle aktiven Benutzer dsquery user -d ad.local -limit 0 | dsget user -disabled -dn > c:\users.txt Damit werden die DEaktivierten Benutzer ausgegeben. [EDIT] So kannst Du es machen: dsquery * -filter (userAccountControl:1.2.840.113556.1.4.803:=2) [/EDIT] Das gleiche in grün. Das UserAccountControl mit dem Wert "1.2.840.113556.1.4.803:=2" gibt lediglich die DEaktivierten Benutzer-Objekte zurück. Zitieren Link zu diesem Kommentar
nerd 28 Geschrieben 16. Oktober 2007 Autor Melden Teilen Geschrieben 16. Oktober 2007 dsquery user -d ad.local -limit 0 | dsget user -disabled -dn > c:\users.txt Das ist fast noch besser - so habe ich alle Informationen, die ich brauche. Nur schade, dass man damit keine upn's ausgeben kann... Danke Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 N'abend, @Daim: Stimmt nicht ganz - 50:50 ;): 1. Die Abfrage dsquery user -d ad.local -limit 0 | dsget user -disabled -dn > c:\users.txt gibt nicht die Benutzer aus, die deaktiviert sind, sondern gibt alle Benutzer des Abfragescopes aus und das Attribut "disabled" mit den Werten "yes" oder "no" als Zusatz. D.h. es werden beide Möglichkeiten innerhalb dieser Abfrage aufgeführt. Deshalb mein Hinweis auf die Filterung mittels "find" bzw. "findstr" 2. Da hast Du Recht - die zweite Abfrage ist "falsch herum". Habe ich irgendwie verrissen - entschuldigt. Aber sicherlich kann man auch den Wert der aktiven Benutzer umrechen - fragt nur bitte jetzt nicht nach dem "wie". ;) @Johannes: Das klingt gut, danke für die Rückmeldung. :) Theoretisch könntest Du über die exportierten CNs in der generierten Textdatei eine weitere Abfrage scripten, mit der Du die UPNs der entsprechenden Benutzer ausliest. Je nachdem wieviel Zeit Du in diese Thematik stecken willst. Aber selbst mittels Batch-Datei sollten das nur ein paar Zeilen sein... ;) Gruß olc Zitieren Link zu diesem Kommentar
ducke 11 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Klar kannst du dir die upn anzeigen lassen: dsquery user -limit 0 | dsget user -disabled -upn -dn z.B. Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 @Daim: Stimmt nicht ganz - 50:50 ;): OKi doki. Ich hatte es aus dem Kopf anders vermutet und konnte es nicht nachprüfen. Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 @ducke: ...womit Du allerdings Recht hast. :D Bei meinem Test vorhin hatte ich nur die Standard Accounts auf dem System - die ohne UPN sind. :D Von daher also alles klar. :) @Daim: Kein Thema - hattest ja zu 50% Recht. ;) Die "-disabled" Option ist bei "dsquery" und "dsget" unterschiedlich - "dsquery" zeigt nur die deaktivierten Benutzer an, "dsquery" die Werte im Ergebnissatz. Daher auch der Umweg im Script... Gruß olc Zitieren Link zu diesem Kommentar
nerd 28 Geschrieben 16. Oktober 2007 Autor Melden Teilen Geschrieben 16. Oktober 2007 Danke schon mal für die vielen Hinweise. Jetzt habe ich noch ein kleines Problem. Ich fahre meine Tests gerade auf mein Testlab mit ca. 16.000 Benutzerobjekten und erhalte nach einiger Zeit die Meldung "dsget failed:The server is not operational." Das gleiche habe ich auch wenn ich mit Hyena auf den Server gehe - dort muß ich dann aber einfach nur ein paar min warten und OK klicken und dann läuft das ganze wieder für ein paar tausend User. Ich vermute also ein Zeit- oder Abfragelimit auf den DC's. Gibt es eine Möglichkeit hier eine Art Verzögerung in den Befehl einzubauen um das zu umgehen? Viele Grüße Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Wieviele Benutzer wurden denn bis zum Abbruch in die Datei geschrieben? Die Frage ist vielleicht, ob es ein Limit der Objekte ist oder eher ein Zeitlimit. Das Query-Zeitlimit kannst Du unter Umständen mittels ntdsutil verändern: How to view and set LDAP policy in Active Directory by using Ntdsutil.exe Normalerweise sollten jedoch gerade die MS-eigenen Tools in der Lage sein, die Timeouts durch Range Retrieval etc. zu "umgehen". Komisch... Direkt eine Pause einbauen geht meines Erachtens mit den dstools nicht - Du müßtest ja die Abfrage splitten... Ist es Dir möglich alle Benutzer abzufragen, ohne das dsget? Falls ja, bliebe noch die Möglichkeit zwei Ausgaben zu generieren: Eine aller Benutzer und eine nur mit den deaktivierten (beides mittels dsquery). Diese Ergebnissätze könntest Du dann abgleichen und mergen (mit windiff, winmerge oder soetwas in der Art). Aber vielleicht hat hier noch jemand eine Idee, wie man das mit einem VB-Script o.ä. hinbekommen kann? Gruß olc Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 16. Oktober 2007 Melden Teilen Geschrieben 16. Oktober 2007 Hallo Johannes, bleibt die Abfrage genau beim 1000-ten User stehen? Dann ist es die "page size" hier ist ein fertiges Skript List All the Disabled User Accounts in Active Directory gib als dritte objCommand noch diese Zeile ein, sonst ist bei 1000 Usern Schluss: "objCommand.Properties("Page Size") = 1000" cu blub 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.