2017-09-04 88 views
0

我需要讀取存儲在位於HKEY_CURRENT_USER下的註冊表項中的軟件許可證。獲取服務中的用戶SID

我正在SYSTEM帳戶中的服務中運行,所以無法讀取此密鑰。

我發現這個註冊表項在HKEY_USER有一個帳戶,我可以在那裏讀取信息。但我需要找出登錄用戶的SID。

如何從德爾福的一個服務中找到這個?

+1

爲什麼不模擬用戶調用服務並讀取註冊表項? – Remko

+0

哪個用戶登錄?可能有幾個。或者沒有。 –

回答

3

撥打LookupAccountName以獲取屬於給定用戶名(及其所屬域)的SID。可以使用ConvertSidToStringSid將SID轉換爲字符串。可以使用Delphi Jedi Windows Security Code Library(JWSCL)。

+1

您可以使用'WTSEnumerateSessions()'發現登錄的會話,'WTSQuerySessionInformation()'檢索這些會話的用戶名+域,然後調用'LookupAccountName()'。另一個選項是枚舉正在運行的進程,直到發現運行在所需會話中的一個(通常爲Explorer),然後打開進程的句柄,獲取其進程標記並查詢它的登錄SID。 –

+0

請問,如何使用LookupAccountName。 O名稱用戶活動,找到函數JEDI庫「GetInteractiveUserName」。 –

+0

解決方案http://pasotech.altervista.org/delphi/articolo24.htm –

相關問題