LookupAccountSID返回错误的域名

时间:2011-05-25 07:48:47

标签: model-view-controller winapi active-directory ldap adsi

MSDN说:LookupAccountSid函数返回找到SID的第一个域的名称。

如果用户域A 迁移到域B ,我们会使用 LookupAccountSid <查询用户的旧SID < / strong>来自域A的任何计算机的功能我们获取域A的域名而不是域B.

似乎即使在迁移用户之后,Active Directory也会在域A上保留用户信息。即使重新启动域A的计算机(包括域控制器),也无法解决此问题。

我需要用户的新域名。你能建议如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

大多数Win32 API旨在在一个帐户有一个sid的环境中工作。 Active Directory支持sidHistory属性,可以保存其他SID。如果您要使用Active Directory API(例如ADSI)或LDAP API,您可以找到主要用户名,主要SID和所需的所有ather属性。

回答您的问题时,最大的问题是您没有描述组织中计划和使用的域迁移方案。当你打算关掉旧域控制器?您是否计划清除文件系统,共享或注册表中保存的旧SID?

了解完整的域迁移方案非常重要,因此您现在编写的程序将继续处理域迁移的后续步骤。我建议您与组织的域迁移项目的管理员或项目经理交谈,以了解计划要做的事情。