2011-01-22 54 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函數使用如下: