Windows Active Directory中是否存在任何主键(或)唯一键?

Windows Active Directory中是否存在任何主键(或)唯一键?,windows,powershell,active-directory,ldap,Windows,Powershell,Active Directory,Ldap,我正在从PowerShell运行以下命令: Get-ADUser -Server ad.com -Filter '*' -Properties '*' Export-Csv 'C:\Users\myFolder\file.csv' -NoTypeInformation -Delimiter '|' 只是尝试识别可以用作“主键”的属性,如EmployeeID或EmployeeNumber。 广告属性列表:[链接] AD是否提供主键?如果需要用户和组条目中的唯一值,可以查看属性。LDAP字符串表示

我正在从PowerShell运行以下命令:

Get-ADUser -Server ad.com -Filter '*' -Properties '*' Export-Csv 'C:\Users\myFolder\file.csv' -NoTypeInformation -Delimiter '|'
只是尝试识别可以用作“主键”的属性,如EmployeeID或EmployeeNumber。 广告属性列表:[链接]
AD是否提供主键?

如果需要用户和组条目中的唯一值,可以查看属性。LDAP字符串表示是一个八位字符串,但您可以找到代码将其转换为ASCII干净的所谓SDDL表示

请注意,SID包含域的SID作为前缀。所以,在域被迁移的情况下,将生成新的SID,并将旧的SID放置在属性中,直到AD管理员清除

但是,如果您正在寻找与外部数据源同步数据的主键,我会在此外部数据源中创建唯一值,并将其放置在或中

虽然许多其他属性必须是唯一的,但有些属性不是真正稳定的或局部的,因此不适合同步数据:

是全局唯一的,因为它是编码为OctetString的UUID(请参阅)。但IIRC在复制副本之间并不稳定

samAccountName和userPrincipalName通常是从人名派生的。该条目在广告中的RDN也基于cn,而cn通常包含该人的姓名。在结婚/离婚等情况下,从个人姓名中提取的值可能会发生变化

=>

  • 同步的最佳属性是自生成的ID(例如UUID)
  • 第二个最佳属性是objectSID,它与sIDHistory一起用于定位条目。确保将objectSID的当前值同步回数据源
如果你看的话

可分辨名称是主键。作为分层数据库,具有规范名称的对象的完整路径在林中必须是唯一的

并且在域中的安全主体之间必须是唯一的

objectSID在整个域中是唯一的

objectGUID是全局唯一的

也就是说,我看到过用户主体名称或samAccountName重复的奇怪情况,但这会导致问题,因为系统假定它们必须是唯一的


EmployeeNumber是用户指定的属性。它旨在使用用户数据库或人力资源数据库中的id填充,以保持人口统计和组织数据的最新状态。属性本身没有约束。

所有这些唯一属性都有一些警告。我在回答中添加了更多的文字来讨论这个问题。欢迎反馈。请注意,
userPrincipalName
在整个广告林中也是唯一的(如果你的林中有多个域)。是的,Gabriel,我有多个域,userPrincipalName对所有域都是唯一的?所以Bacon,你是说ObjectGUID最好用作主键?@Pavan_Obj这取决于。
objectGuid
给您的唯一好处是它永远不会改变,但您在乎吗
userPrincipalName
保证是唯一的,并且是人类可读的,但是可以更改(例如,如果此人更改其姓名)。您能描述一下您的用例吗?有几个字段可供选择。我正在尝试识别一个“主键”和“修改的时间戳”,我可以使用它每天更新配置单元表,同时使用Get ADUser-Server AD.com-Filter“”-Properties“”从AD中提取所有记录。AD输出提供了以下属性“MultFyTimeType”,我可以使用它作为数据列,但是我无法找到我能使用的最佳主键。所以,米迦勒,你是说ObjutGuID是唯一的属性,作为唯一的密钥,根据我的以下尝试:我正在尝试识别一个“主键”和“修改的时间戳”,我可以使用它每天更新配置单元表,同时使用Get ADUser-Server AD.com-Filter'-Properties''从AD中提取所有记录。AD输出提供了以下属性“modifyTimeStamp”,我可以将其用于数据列,但我无法找到可以使用的最佳主键。否。我说过objectSID是同步的最佳属性,同时查看sIDHistory甚至可以在域迁移中生存下来。