MSDN 说: LookupAccountSid 函数返回找到 SID 的第一个域的名称。
如果用户从域 A迁移到域 B ,我们在域 A 的任何机器上使用LookupAccountSid函数查询用户的旧 SID,我们得到域 A 的域名而不是域 B。
似乎即使在迁移用户之后,Active Directory 仍将用户信息保留在域 A 上。即使重新启动域 A 的机器(包括域控制器)后,此问题也没有解决。
我需要 User 的新域的名称。你能建议如何解决这个问题吗?
MSDN 说: LookupAccountSid 函数返回找到 SID 的第一个域的名称。
如果用户从域 A迁移到域 B ,我们在域 A 的任何机器上使用LookupAccountSid函数查询用户的旧 SID,我们得到域 A 的域名而不是域 B。
似乎即使在迁移用户之后,Active Directory 仍将用户信息保留在域 A 上。即使重新启动域 A 的机器(包括域控制器)后,此问题也没有解决。
我需要 User 的新域的名称。你能建议如何解决这个问题吗?
大多数 Win32 API 设计为在一个帐户有一个 sid 的环境中工作。Active Directory 支持sidHistory
可以保存其他 SID 的属性。如果您使用 Active Directory API(例如ADSI)或LDAP API,您可以找到主要用户名、主要 SID 和您需要的所有其他属性。
回答您的问题时最大的问题是您没有描述组织中计划和使用的域迁移方案。当您打算关闭旧的域控制器时?您是否打算清除保存在文件系统、共享或注册表中的旧 SID?
了解完整的域迁移方案很重要,这样您现在编写的程序将继续在域迁移的后续步骤中工作。我建议您与您组织的域迁移项目的管理员或项目经理交谈,以了解具体计划做什么。