Ich habe eine ausführbare Datei geerbt, die Benutzer in einer Datenbanktabelle und in Active Directory aktualisiert.Active Directory-Filter, um inaktive Benutzer zurückzugeben
Der Filter ist eingestellt auf:
Dim strFilter As String = "(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=" & ADS_UF_ACCOUNTDISABLE & ")(whenChanged>=" & Format(dteADLastSyncTime, "yyyyMMddHHmmss") & ".OZ))"
die zu beschliesst:
(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2)(whenChanged>=20091206100029.OZ))
dteADLastSyncTime speichert die Zeit, wo dieser Prozess zuletzt ausgeführt wurde und wird am Ende des Programmablaufs aktualisiert.
Jetzt wurde ein Fehler gefunden, bei dem einige inaktive Benutzer (inaktiv in dem Sinne, dass ihre whenChanged-Eigenschaft> = die letzte Synchronisierungszeit ist) nicht als inaktiver Benutzer aktualisiert werden. Für gefundene inaktive Benutzer soll ein Flag in der Datenbank und in AD gesetzt werden.
Meine Frage ist der strFilter sieht für mich aus, für eine scheint es, als ob die Bedingung, wenn> => Datum> ist falsch herum, aber ich weiß nicht genug über AD um sicher zu sein. Wird beim Benutzer wie ein letztes modifiziertes Flag geändert? Wenn ja, sollte die Bedingung nicht sein, wennChanged < = 'Datum'?
Zweitens das userAccountControl: 1.2.840.113556.1.4.803: = 2 - fragt das Active Directory nicht nach bereits deaktivierten Konten?