通过IAdsUser获取用户的GUID

时间:2013-11-29 13:05:22

标签: delphi com active-directory

出于某种原因,无论我检查的是哪个用户,IAdsUser.GUID返回的GUID都是相同的。我也尝试过使用IAdsUser.get('objectGUID') - 但是失败了。有没有人有一个工作的delphi代码来获取AD用户的唯一标识符? 获得SID没问题。

mAddr:='WinNT://' + dom1 + '/' + uid1;

if length(Password)>0 then
mRes:=ADsOpenObject(PChar(mAddr),Username,Password,1,IADsUser,usr) else
mRes:=ADsGetObject(PChar(mAddr), IADsUser, usr);

if (mRes=S_OK) and (usr<>NIL) then
Begin
  ADSIUser.UID:=UserName;
  ADSIUser.FullName:=usr.FullName;
  ADSIUser.Disabled:=usr.AccountDisabled;
  ADSIUser.LockedOut:=usr.IsAccountLocked;
  ADSIUser.GUID:=usr.GUID; //<--- returns the same for ALL users

1 个答案:

答案 0 :(得分:1)

AFAIK,您无法通过WinNT://提供程序获取objectGUID。如果您无法使用LDAP://提供程序,是否可以使用IADsNameTranslate