Creé una base de datos donde tienes que cambiar la MasterKey la primera vez que se abre, después de este cambio ya no debería ser posible cambiar la masterkey. Para lograr esto, creé este archivo por lotes:
@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
Algunas partes del código se eliminan porque cambian la configuración que no importa para mi pregunta.
Este método funciona, pero parece extraño y hay muchas formas en que puede generar problemas. Por ejemplo, si presionan Intro antes de abrir la base de datos o ingresan mientras Keepass aún está abierto. ¿Hay alguna manera de permitir solo el primer cambio de contraseña maestra? Sin tener que anular la configuración a tiempos.
Si puedo mejorar mi pregunta por favor dímelo y gracias por tu ayuda.
Editar: después de una sugerencia de un usuario aquí, cambié el segundo archivo de configuración a obligatorio y estoy jugando con eso. Parece que seguiré usando el archivo de configuración doble.