The best way to resolve display username by SID?

后端 未结 2 1231
刺人心
刺人心 2020-12-09 12:15

I read a list of SIDs from the registry, HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList.

How would one resolve the dis

2条回答
  •  不知归路
    2020-12-09 12:20

    The Win32 API function LookupAccountSid() is used to find the name that corresponds to a SID.

    LookupAccountSid() has the following signature:

    BOOL LookupAccountSid(LPCTSTR lpSystemName, PSID Sid,LPTSTR Name, LPDWORD cbName,
                           LPTSTR ReferencedDomainName, LPDWORD cbReferencedDomainName,
                           PSID_NAME_USE peUse);
    

    MSDN Ref.

    Here's the P/Invoke reference (with sample code): http://www.pinvoke.net/default.aspx/advapi32.LookupAccountSid

    [DllImport("advapi32.dll", CharSet=CharSet.Auto, SetLastError = true)]
    static extern bool LookupAccountSid (
      string lpSystemName,
      [MarshalAs(UnmanagedType.LPArray)] byte[] Sid,
      StringBuilder lpName,
      ref uint cchName,
      StringBuilder ReferencedDomainName,
      ref uint cchReferencedDomainName,
      out SID_NAME_USE peUse); 
    

提交回复
热议问题