使用 LocalSystem 帐户从 Windows 服务进行 Gpg4Win 批量非对称加密

Gpg4Win batch asymmetric encryption from Windows service with LocalSystem account

我想要 运行 Duplicati 备份软件作为 Windows 服务,原因有两个:收集所有用户文件并且 运行 即使没有人登录。此外,即使如果系统是单用户系统,我不想依赖于向服务或预定的启动作业提供用户的 Windows 密码,因为如果用户更改密码,那么他必须记住更新服务或工作。

我首先从一个用户帐户中测试(似乎还可以),即不是作为一项服务,使用一小部分用户文件和这些参数以及一个没有密码的私钥:

--no-default-keyring --keyring c:\users\utilisateur\AppData\Roaming\gnupg\pubring.kbx --default-key FULLFINGERPRINTHERE --default-recipient-self

当 运行 作为一项服务时,我收到此错误(t运行 将转换为英语):

GPG execution failure with "C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe --batch --passphrase-fd 0 --no-default-keyring --keyring c:\users\utilisateur\AppData\Roaming\gnupg\pubring.kbx --default-key FULLFINGERPRINTHERE --default-recipient-self --encrypt": gpg: Warning: not using 'FULLFINGERPRINTHERE' as default key: No gpg secret key: all values passed to '--default-key' ignored gpg: no valid recipient gpg: [stdin]: encryption failed: No identity

请注意Duplicati添加的参数--batch --passphrase-fd 0 --encrypt。我添加了 --no-default-keyring & --keyring path-to-user-gpg-data 作为 --secret-keyring <file> 在 gpgv2 中已过时的解决方法,因为密钥现在存储在 private-keys-v1.d 目录中。

有什么提示吗?

谢谢

让它与 --home-dir path 一起工作并删除了 --[no-default-]keyring 东西。首先我没有尝试,因为手册说它只在命令行中考虑。