Das ist recht komplex. Es gibt zwar einen LDAP-Query, den du bei WS2003 in den Gespeicherten Abfragen verwenden kannst, der funktioniert aber nur, wenn du die Konten gesperrt lässt oder wenn du den Query bei jeder Ausführung anpasst.
Hintergrund ist, dass ein gesperrtes Benutzerkonto einen Wert in dem Attribut LockoutTime gesetzt bekommt, der ungleich leer oder 0 ist. Wenn ein Administrator das Konto entsperrt, dann wird der Wert auf 0 gesetzt. Wenn du allerdings das Feature verwendest, das das Konto automatisch nach ein paar Minuten wieder entsperrt wird, dann steht in der LockoutTime die Zeit, bis zu der das Konto gesperrt wird, und der Wert wird hinterher nicht auf 0 gesetzt, da die Zeit ja eh in der Vergangenheit liegt.
Daher müsste der Query berücksichtigen, welche Konten in der LockoutTime einen Wert haben, der in der Zukunft liegt. Der MVP Richard Mueller hat auf seinen Webseiten ein Script, das genau dies macht: http://www.rlmueller.net/IsUserLocked.htm
Eine andere Möglichkeit ist, über den Windows NT Provider per Script den User abzufragen, hier gibt es eine Methode die den Lockout-Status des Benutzers sichtbar macht. Allerdings geschieht der Zugriff auf die Benutzerdatenbank hier über NT-Mechanismen und kann in einem großen Netzwerk recht lange dauern. Richard hat auch hierfür ein Beispiel: http://www.rlmueller.net/LockedUsers.htm
Wenn du kein automatisches Entsperren von Benutzerkonten verwenden würdest, dann könntest du auch in Active Directory-Benutzer und -Computer eine gespeicherte Abfrage mit dem folgenden LDAP-Query machen:
(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1))
http://faq-o-matic.net/?p=568