我正在尝试将Windows注册表更新为具有SYSTEM权限的服务。 如果我使用Java更新注册表,它可以正常工作,因为Java使用管理员帐户。 当我尝试使用使用SYSTEM帐户的Windows服务调用的Java更新注册表时,它不会更新任何内容。
如何提供对SYSTEM帐户的访问权限以更新注册表。
在纯Java中工作,如果由SYSTEM帐户的服务调用,则无法正常工作。
答案 0 :(得分:1)
我怀疑您需要为登录访问令牌设置一些权限。我们在Windows下运行Java服务,并且在访问注册表之前总是设置一些权限,如下所示:
public static final String BACKUP_PRIV = "SeBackupPrivilege";
public static final String RESTORE_PRIV = "SeRestorePrivilege";
public static final String SECURITY_PRIV = "SeSecurityPrivilege";
如果我没有设置它们就行不通。您可以设置更精细的特权,但我不确定它们会是什么。
我们必须为我们编写一些本机代码,使用Win API函数,如下所示: