2017-01-08 1 views
0

Ich habe ein Projekt, und ich versuche, die richtige Algorithm und Methode dafür zu finden.Lesen von UserID und IP-Mapping mit Python auf Active Directory

Ich habe eine Datei namens ADUserIPmap.txt, die eine der Active Directory-Pfad befindet.

Diese Datei enthält Zeilen wie diese:

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 

Ich muss dritte Spalte (1482857637) mit given des Benutzers ersetzen. Und diese GivenName-Daten stammen aus einer Powershell-Befehlsausgabe wie dieser.

C:\Users\Administrator> Get -ADuser -Identity 1482857637 
GivenName: nthere 
SamAccountName: 1482857637 

Python-Skript funktioniert auch auf Active Directory und Powershell-Befehl.

Nach all diesen Schritten werde ich diese Informationen an eine Firewall mit XML API senden.

Frage 1) ADUserIPmap.txt ist eine Protokolldatei und Linien werden ständig zunehmen. Ich möchte nicht immer wieder alle Dateien lesen. Was ist die richtige Methode für diesen Fall?

2) Gibt es einen einfachen Weg, Given Feld von Active Directory

Dank

Antwort

0

Q1) Nach dem Lesen der Datei das erste Mal zu erhalten, um die aktuelle Position zu einem Variablen zuweisen. Springe dann vor dem Iterieren dorthin.

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

Wenn Sie last_read anhalten müssen, verwenden 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) 

Wenn Sie mehrere Dinge anhalten wollen, setzen Sie sie in einem Wörterbuch und das Wörterbuch beizen.


Q2) Sieht aus wie es einige Active Directory-Bibliotheken in PyPi sind