Я создал базу данных, в которой вам нужно изменить MasterKey при первом открытии, после этого изменения изменить MasterKey больше не должно быть возможным. Чтобы добиться этого, я создал этот пакетный файл:
@CD /d "%~dp0"
KeePass-2.42.1-Setup.exe /verysilent
REM Installs KeePass 2.42.1 very silent
COPY KeePass.config.xml "C:\Program Files (x86)\KeePass Password Safe 2\"
REM Recplaces the Configuration File with a modified file. Modification are:
REM -Setting UIFLAG to 35
REM -CheckForUpdate to false and CheckForUpdateConfigured to true
REM - <Policy> <NewFile> to false
COPY Datenbank.kdbx "D:\Eigene Dateien\KeePass\"
REM Copies the modified Database onto the PC, this Database asks for a change of the masterkey the first time it gets opened
ECHO "Please open the database PasswortManager on your Desktop now, change the masterkey as prompted, save it and close Keepass. Press Enter after finishing"
PAUSE
COPY KeePass2.config.enforced.xml "C:\Program Files (x86)\KeePass Password Safe 2\"
REM Replaces the configuration file again this time with <ChangeMasterKey> to False
Некоторые части кода удалены, поскольку они изменяют настройки, не имеющие значения для моего вопроса.
Этот метод работает, но кажется странным, и есть много способов, которыми он может привести к проблемам. Например, если они нажимают Enter перед открытием базы данных или Enter, когда keepass все еще открыт. Есть ли способ разрешить только первую смену главного пароля? Без необходимости переопределять конфигурацию на times.
Если я могу улучшить свой вопрос, пожалуйста, сообщите мне об этом и поблагодарите за помощь.
Редактировать: После предложения пользователя здесь я изменил второй файл конфигурации на принудительный и играюсь с этим. Похоже, я продолжу использовать двойной файл конфигурации.