2011-01-22 18 views
1

我试图将Windows注册表更新为具有SYSTEM权限的服务。 如果我使用Java更新注册表,它会正常工作,因为Java使用管理员帐户。 当我尝试使用SYSTEM帐户使用由Windows服务调用的Java更新注册表时,它不更新任何内容。更新Windows注册表使用由SYSTEM帐户的Windows服务调用的java

如何提供对SYSTEM帐户的访问权限以更新注册表。

在纯Java中工作,如果它被SYSTEM帐户的服务调用,则不工作。

回答

1

我怀疑你需要为你的登录访问令牌设置一些权限。我们Windows下运行Java服务,我总是设置一些权限之前,我访问注册表如下所示:

public static final String BACKUP_PRIV = "SeBackupPrivilege";  
public static final String RESTORE_PRIV = "SeRestorePrivilege"; 
public static final String SECURITY_PRIV = "SeSecurityPrivilege"; 

如果我不设置这些将无法正常工作。您可以设置更多细粒度的权限,但我不确定它们会是什么。

我们不得不写一些本地代码来为我们做到这一点,使得运API函数使用如下: