Да, можно установить время «истечения» в зависимости от времени «создания». С помощью программы процесс может быть автоматизирован. Измените глобальные константы ( KPSCRIPT, DATABASE и PASSWORD ) на значения, соответствующие вашей системе перед запуском. В этом конкретном примере срок действия устанавливается через пять лет после даты последнего изменения. Программа ниже была адаптирована из ответа Пола .
#! /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()