在服务中获取用户 SID

Get USER SID in a Service

我需要读取存储在 HKEY_CURRENT_USER 下的注册表项中的软件许可证。

我 运行 在 SYSTEM 帐户的服务中,所以我无法读取此密钥。

我发现这个注册表项在HKEY_USER中有一个帐户,我可以在那里阅读信息。但是我需要找出登录用户的SID。

如何从 Delphi 中的服务找到这个?

调用LookupAccountName to get the SID belonging to a given username (and the domain it belongs to). ConvertSidToStringSid可用于将SID转换为String。

或者使用 Delphi Jedi Windows Security Code Library (JWSCL)。