我正在从PowerShell运行以下命令:
Get-ADUser -Server ad.com -Filter '*' -Properties '*' Export-Csv 'C:\Users\myFolder\file.csv' -NoTypeInformation -Delimiter '|'
只需尝试标识可用作“主键”的属性,例如EmployeeID或EmployeeNumber。 广告属性列表:[链接] AD是否提供主键?
答案 0 :(得分:5)
专有名称是主键。作为分层数据库,具有规范名称的对象的完整路径在林中必须是唯一的。
samAccountName和userPrincipalName在域中的安全主体之间也必须是唯一的。
objectSID在整个域中都是唯一的。
objectGUID是全局唯一的。
也就是说,我已经看到用户主体名称或samAccountName重复的奇怪情况,但这会引起问题,因为系统认为它们必须是唯一的。
EmployeeNumber是用户指定的属性。旨在使用您的用户数据库或HR数据库中的ID进行填充,以使人口统计数据和组织数据保持最新。该属性本身没有约束。
答案 1 :(得分:4)
如果您需要用户和组条目中的唯一值,则可以查看属性objectSID。 LDAP字符串表示形式是 OctetString ,但是您可以找到将其转换为ASCII干净的所谓SDDL表示形式的代码。
请注意,SID包含域的SID作为前缀。因此,如果域被迁移,则会生成新的SID,并将旧的SID放置在属性sIDHistory中,直到由AD管理员清除为止。
但是,如果您要查找与外部数据源同步数据的主键,我会在该外部数据源中创建唯一值并将其放在employeeID或employeeNumber中。 / p>
许多其他属性必须是唯一的,但某些属性并不是真正稳定或局部的,因此不适合使用,例如用于同步数据:
objectGUID是全局唯一的,因为它是一个编码为 OctetString 的UUID(请参阅RFC 4122)。但是IIRC在所有副本中都不稳定。
samAccountName 和 userPrincipalName 通常来自人名。广告中的条目的RDN也基于 cn ,该名称大多数时候都包含该人的姓名。在结婚/离婚等之后,可能会更改从人的名字得出的值。
=>