2017-05-11 1 views
0

ldap을 통해 활성 디렉토리에서 유효한 AD 사용자를 식별하는 스크립트를 만들고 싶습니다. 문제는 내가 활성 디렉토리에서 유효한 사용자를 정확히 의미하는지 모르겠다. ...활성 사용자를위한 광고

Windows 로그인 목록이 있다고 가정 해보십시오. 사용자가 로그인 할 수 있는지 쿼리하고 싶습니다. 즉, 계정이 만료되지 않았거나 비활성 상태가 아니라는 것을 의미합니다.

res = l.search_s("DC=...", 
       ldap.SCOPE_SUBTREE, 
       '(&(objectClass=user)(sAMAccountName=%s))' % sAMAccountName, 
       ['lastlogon','accountExpires', 'cn', 'mail', 'lockoutTime']) 

내 스크립트는 if-else-if-else와 점점 더 복잡해집니다. 내가 명확하고 투명한 검색어 : 사용자가 현재 로그인 할 수 있습니까?

+0

은 아마 당신은이 생각 이상-. 내가 올바르게 당신을 이해한다면 마지막 XX 일 동안 도메인에 로그인 한 장애인이 아닌 모든 사용자의 목록 만 있으면됩니까? –

+0

@ T-Heron 예, 아마도 ... 예, 사용하지 않은 사용자가 만료되지 않았으며 작년에 로그인했습니다. 그 옆에 내가 뭔가를 놓칠 지 모르겠다. ... – wenzul

답변

1

추가 연구 후 :

당신은 사용해야의 값이 0 또는 0x7FFFFFFFFFFFFFFF (9,223,372,036854775807)를 나타냅니다 타임 스탬프입니다

  • LastLogonTimeStamp :
  • AccountExpires는 일년 전부터 타임 스탬프 비교 계정은 만료되지 않습니다.
  • 에서 lockoutTime : (lockoutTime=>0)는 :)이 계정이 잠겨 때 타임 스탬프, 그래서이 설정되어있는 경우는 을 잠겨 (I이 게시물에 2 개 이상의 링크를 넣을 수 없습니다 로 더 많은 정보를 위해 ldapwiki.com 검색)

나는 잘 액티브 디렉토리 모르겠지만, LDAP 필터에서 모든 시험을 쉽게되지 않을 것? 그 같은

뭔가을 (필요는 속성의 LDAP 구문에 해당하는 적응 수) :

(& 
    (objectClass = user) 
    (sAMAccountName = %s) 
    (lastlogon < dateFrom1Year) 
    (!(accountExpires = *)) 
    ... 
) 
+0

당신의 의견을 보내 주셔서 감사합니다. '는 LDAP 구문의 속성에 해당하는 것으로 적응해야합니다. :) LDAP 또는 Python에서 ... – wenzul

+0

@wenzul 답변에 대한 추가 정보 – Esteban

관련 문제