【问题标题】:LookupAccountSID is returning incorrect domain nameLookupAccountSID 返回不正确的域名
【发布时间】:2011-05-25 07:48:47
【问题描述】:

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

如果用户域A迁移到域B,我们使用LookupAccountSid 函数来自域 A 的任何机器, 我们获取域 A 的域名而不是域 B。

似乎即使在迁移用户之后,Active Directory 仍在域 A 上保留用户信息。即使重新启动域 A 的机器,包括域控制器,此问题也没有解决。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    了解完整的域迁移方案很重要,这样您现在编写的程序才能继续执行域迁移的后续步骤。我建议您与您组织的域迁移项目的管理员或项目经理交谈,以了解具体计划做什么。

    【讨论】:

    • 感谢您的回复。你是对的,ADSI 可以用于此目的。但是,理想情况下,它应该与 LookupAccountSid 函数一起使用。你能告诉我为什么
    • 感谢您的回复。你是对的,ADSI 可以用于此目的。但是,理想情况下,它应该与 LookupAccountSid 函数一起使用。在用户迁移到新域(域 B)后,您能否说明 Active Directory 将用户信息保留在旧域(域 A)上的原因和位置。我有一个测试环境,其中包含多个在本机模式下运行的 Windows 2003 林,并且正在使用 ADMT(Active Directory 迁移工具)2.5 迁移用户。谢谢
    • 信息保存在 Active Directory 的SID-History Attribute 中。您可以在此处找到一些其他信息:DsAddSidHistory。您可以使用 ADSIEdit.msc 检查属性的包含。 Here你可以找到一个读取多值sIDHistory属性的脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多