Criei um banco de dados onde você tem que alterar a MasterKey na primeira vez que ela for aberta, após essa alteração não será mais possível alterar a masterkey. Para arquivar isso, criei este arquivo em lote:
@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
Algumas partes do código são retiradas porque alteram configurações que não importam para minha pergunta.
Este método funciona, mas parece estranho e há muitas maneiras de causar problemas. Por exemplo, se eles pressionarem enter antes de abrir o banco de dados ou entrarem enquanto o keepass ainda estiver aberto. Existe uma maneira de permitir apenas a primeira alteração da senha mestra? Sem ter que substituir a configuração às vezes.
Se eu puder melhorar minha pergunta, por favor me diga e obrigado pela sua ajuda
Editar: Após sugestão de um usuário aqui, alterei o segundo arquivo de configuração para forçado e estou brincando com isso. Parece que continuarei usando o arquivo de configuração duplo.