出于某种原因,无论我检查的是哪个用户,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