Ja, es ist möglich, die "Verfallszeit" basierend auf der "Erstellungszeit" festzulegen. Mit einem Programm kann der Prozess automatisiert werden. Ändern Sie die globalen Konstanten ( KPSCRIPT, DATABASE und PASSWORD ) vor der Ausführung in Werte, die Ihrem System entsprechen. In diesem speziellen Beispiel wird die Ablaufzeit auf fünf Jahre nach dem letzten Änderungsdatum festgelegt. Das folgende Programm wurde von Pauls Antwort übernommen .
#! /usr/bin/env python3 import datetime import subprocess import uuid KPSCRIPT = r'C:\Program Files (x86)\KeePass Password Safe 2\KPScript.exe' DATABASE = r'C:\Users\Stephen Paul Chappel\Documents\Database.kdbx' PASSWORD = r'password' def main(): """Get KeePass entries, check each one, and change if required.""" for line in ps(KPSCRIPT, '-c:ListEntries', DATABASE, '-pw:' + PASSWORD): key, value, *pair = line.split(': ', 1) + [None] if pair: if key == 'UUID': reference = uuid.UUID(value) elif key == 'TLM': tlm = datetime.datetime.strptime(value, '%Y-%m-%dT%H:%M:%S') elif key == 'EXP': if not {'False': False, 'True': True}[value]: # Add 5 years to the last modification # time for the expiry date and format. te = tlm.replace(tlm.year + 5) te = te.strftime('%Y-%m-%dT%H:%M:%S') ps( KPSCRIPT, '-c:EditEntry', DATABASE, '-pw:' + PASSWORD, '-refx-UUID:' + reference.hex, '-setx-Expires:True', '-setx-ExpiryTime:' + te ) del reference, tlm def ps(*args): """Provide an interface for writing commands like those in PowerShell.""" return subprocess.run( args, timeout=1, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True ).stdout.splitlines() if __name__ == '__main__': main()