2017-01-08 14 views
0

프로젝트가 있는데 올바른 알고리즘 및 방법을 찾으려고합니다.Active Directory에서 Python을 사용하여 UserID 및 IP 매핑 읽기

Active Directory의 경로 중 하나에있는 ADUserIPmap.txt라는 파일이 있습니다. I는 세 번째 열 (1482857637)를 교체해야

172.16.205.5 domain\administrator 1482857637 Tue Dec 27 19:53:57 2016 

172.16.200.237 domain\admin 1482857408 Tue Dec 27 19:50:08 2016 

172.16.200.254 domain\cppm 1482857802 Tue Dec 27 19:56:42 2016 

172.16.200.200 domain\admin 1482857830 Tue Dec 27 19:57:10 2016 

해당 사용자의 givenName과 함께 :

이 파일이 같은 라인을 포함한다. 그리고이 givenName 데이터는 이와 같이 powershell 명령 출력에서 ​​나옵니다.

파이썬 스크립트는 Active Directory 및 powershell 명령에서도 작동합니다.

위의 모든 단계를 완료 한 후 xml api를 사용하여 방화벽에 이러한 정보를 보내 드리겠습니다.

질문 질문 1) ADUserIPmap.txt는 로그 파일이며 줄이 계속 증가합니다. 나는 모든 파일을 반복해서 읽고 싶지 않다. 이 사건에 대한 올바른 방법은 무엇입니까?

2) 파일을 처음 읽은 후 Active Directory에서

감사

답변

0

Q1)를 givenName과 필드를 얻을 수 변수에 현재 위치를 할당 할 수있다 어떤 간단한 방법입니다. 그런 다음 반복하기 전에 점프하십시오.

with open('foo.txt') as f: 
    z = f.seek(last_read) 
    for line in f: 
     print(line) 
    last_read = f.tell() 

당신이 last_read을 지속 여러 을 유지하려면 pickle

import pickle 
# retrieve before processing 
with open('last_read.pkl') as f: 
    last_read = pickle.load(f) 

#process 
with open('foo.txt') as f: 
    z = f.seek(last_read) 
    for line in f: 
     print(line) 
    last_read = f.tell() 


# save after processing 
with open('last_read.pkl', 'wb') as f: 
    pickle.dump(last_read, f) 

을 사용하여, 사전에 넣어와 사전 피클해야하는 경우. PyPi

에 몇 액티브 디렉토리 라이브러리가있는 것처럼


Q2)를 보이는