Wie liest man users.txt aus, sucht nach lastlogontimestamp mit ldapsearch und konvertiert lastlogontime in normale Zeit?

Antwort

Um ein Python-Skript zu erstellen, das eine Datei `users.txt` ausliest, nach dem `lastLogonTimestamp` mit `ldapsearch` sucht und diesen in eine normale Zeit konvertiert, kannst du folgendes Beispiel verwenden: 1. Installiere die benötigten Python-Bibliotheken: ```bash pip install ldap3 ``` 2. Erstelle das Python-Skript: ```python import subprocess import datetime def get_last_logon_timestamp(user): # Führe ldapsearch aus, um den lastLogonTimestamp zu erhalten result = subprocess.run( ['ldapsearch', '-x', '-LLL', '-b', 'dc=example,dc=com', f'(sAMAccountName={user})', 'lastLogonTimestamp'], capture_output=True, text=True ) output = result.stdout # Extrahiere den lastLogonTimestamp for line in output.split('\n'): if 'lastLogonTimestamp' in line: timestamp = line.split(': ')[1].strip() return int(timestamp) return None def convert_timestamp_to_datetime(timestamp): # Konvertiere den lastLogonTimestamp in eine normale Zeit epoch_start = datetime.datetime(1601, 1, 1) delta = datetime.timedelta(seconds=timestamp / 10**7) return epoch_start + delta def main(): with open('users.txt', 'r') as file: users = file.readlines() for user in users: user = user.strip() timestamp = get_last_logon_timestamp(user) if timestamp: last_logon_time = convert_timestamp_to_datetime(timestamp) print(f'User: {user}, Last Logon Time: {last_logon_time}') else: print(f'User: {user}, Last Logon Time: Not found') if __name__ == '__main__': main() ``` 3. Passe die Basis-DN (`dc=example,dc=com`) in der `ldapsearch`-Befehlszeile an deine LDAP-Umgebung an. Dieses Skript liest die Benutzernamen aus der Datei `users.txt`, führt für jeden Benutzer eine `ldapsearch`-Abfrage durch, um den `lastLogonTimestamp` zu erhalten, und konvertiert diesen in ein lesbares Datum und Uhrzeit.

Kategorie: Technik Tags: Python LDAP Timestamp
Frage stellen und sofort Antwort erhalten