Model view controller LookupAccountSID返回的域名不正确

Model view controller LookupAccountSID返回的域名不正确,model-view-controller,winapi,active-directory,ldap,adsi,Model View Controller,Winapi,Active Directory,Ldap,Adsi,MSDN说明:LookupAccountSid函数返回找到SID的第一个域的名称 如果用户从域a迁移到域B,我们使用LookupAccountSid函数从域a的任何机器查询用户的旧SID,我们将得到域a的域名而不是域B 似乎即使在迁移用户之后,Active directory仍在保留域A上的用户信息。即使在重新启动域A(包括域控制器)的计算机后,此问题仍无法解决 我需要用户的新域的名称。您能建议如何解决此问题吗?大多数Win32 API设计用于一个帐户具有一个sid的环境。Active Dire

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

如果用户从域a迁移到域B,我们使用LookupAccountSid函数从域a的任何机器查询用户的旧SID,我们将得到域a的域名而不是域B

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


我需要用户的新域的名称。您能建议如何解决此问题吗?

大多数Win32 API设计用于一个帐户具有一个sid的环境。Active Directory支持可以保存其他SID的sidHistory属性。例如,如果您使用Active Directory API,或者您可以找到主用户名、主SID和您需要的所有其他属性

在回答您的问题时,最大的问题是您没有描述组织中规划和使用的域迁移场景。您计划何时关闭旧域控制器?您是否计划清除保存在文件系统、共享或注册表中的旧SID


了解完整的域迁移场景非常重要,这样您现在编写的程序将继续进行域迁移的后续步骤。我建议您与组织的域迁移项目的管理员或项目经理联系,以了解具体计划做什么。

感谢您的回复。你说得对,ADSI可以用于此目的。但是,理想情况下,它应该与LookupAccountSid函数一起工作。你能告诉我你为什么拒绝答复吗。你说得对,ADSI可以用于此目的。但是,理想情况下,它应该与LookupAccountSid函数一起工作。您能否告诉我,在用户迁移到新域B后,Active Directory将用户信息保存在旧域A上的原因和位置。我有一个测试环境,其中包括多个windows 2003林,它们以本机模式运行,并且正在使用ADMT Active Directory迁移工具2.5迁移用户。谢谢这些信息保存在Active Directory的目录中。您可以在此处找到一些其他信息:。您可以使用ADSIEdit.msc检查属性的包含情况。您可以找到读取多值sIDHistory属性的脚本。