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

标签 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 是否提供主键?

最佳答案

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

请注意,SID 包含域的 SID 作为前缀。因此,如果域被迁移,则会生成新的 SID,并将旧的 SID 放置在属性 sIDHistory 中。直到被 AD 管理员清理干净。

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

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

objectGUID是全局唯一的,因为它是一个编码为 OctetString 的 UUID(参见 RFC 4122)。但是 IIRC 它在副本之间不稳定。

samAccountNameuserPrincipalName 通常源自人名。条目在 AD 中的 RDN 也基于 cn,其中大部分时间包含人名。源自人名的值可能会在结婚/离婚等后发生变化。

=>

  • 同步的最佳属性是自行生成的 ID(例如 UUID)。
  • 第二好的属性是 objectSIDsIDHistory 结合使用以定位条目。确保将 objectSID 的当前值同步回您的数据源。

关于windows - Active Directory 中是否存在任何主键(或)唯一键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940960/

相关文章:

powershell - 在事件目录中获取不属于ANY组的用户的列表

c++ - 函数名称与序数值 - 从 DLL 模块获取函数地址

java - 通过 powershell 启动 selenium grid hub 时出错 - VSTS/TFS

c# - 无法从程序文件文件夹运行 ps1 脚本

active-directory - ithit-ajax-file-browser 事件目录 WebDav 自动登录

Azure AD 不显示用户同意页面并在登录时返回 AADSTS65001,仅适用于某些 AD 租户

c# - 根据 c# 中的窗口大小调整框

Windows shell命令获取当前目录的完整路径?

c++ - ATL 库 :warning LNK4254 and LNK4078

.net - 如何从 Powershell 调用使用 C# 输出参数的重载 .NET 函数?