2

我正在编写一个 Powershell 脚本来自动从一个数据库中提取信息以更新 Active Directory,例如添加新用户。

我是 Active Directory 的新手,正在使用这个有用的图形映射将 UI 标签链接到 AD 属性

我希望 UserPrincipalName,例如tina.Tana@example.com是用户帐户的唯一标识符。

但在测试过程中,结果却并非如此。如果我做:

$status = New-QADUser -FirstName 'Tina' -LastName 'Tana' -Name 'Tina A Tana' `
            -UserPrincipalName 'tina.tana@example.com' `
            -ParentContainer 'OU=OU2,OU=OU2,DC=example,DC=com'
$status = New-QADUser -FirstName 'Tina' -LastName 'Tana' -Name 'Tina B Tana' `
            -UserPrincipalName 'tina.tana@example.com' `
            -ParentContainer 'OU=OU2,OU=OU2,DC=example,DC=com'

2 个帐户都可以创建,唯一的区别是-Name字段。

如果我做:

$status = New-QADUser -FirstName 'Tina' -LastName 'Tana' -Name 'Tina Tana' `
            -UserPrincipalName 'tina.tana-1@example.com' `
            -ParentContainer 'OU=OU2,OU=OU2,DC=example,DC=com'
$status = New-QADUser -FirstName 'Tina' -LastName 'Tana' -Name 'Tina Tana' `
            -UserPrincipalName 'tina.tana-2@example.com' `
            -ParentContainer 'OU=OU2,OU=OU2,DC=example,DC=com'  

区别仅在于-UserPrincipalName. 第二个添加用户将失败,PS 说用户已经创建。我尝试了其他组合,但它表明 -Name 必须是唯一的,其他字段无关紧要。

我错过了什么吗?在我看来,人们可以有相同的名字,但是在创建帐户时,用户主体名称应该是唯一的。(当您使用AD 用户和计算机GUI 工具手动创建新用户 AD 帐户时,如果您为不同的人提供相同的登录名(即 userPrincipalName),该工具会告诉您必须提供不同的登录名。

那么,为什么使用 Quest Add-QADUser 从 Powershell 执行此操作时会有所不同?为什么从 Powershell 执行时,命令会成功执行?

困惑!非常感谢您的意见!

4

1 回答 1

1

阅读这个microsoft KB和这个msdn 库

Active Directory 本身不强制 UPN 的唯一性。创建或修改 UPN 的进程负责检查唯一性(这是通过查询全局编录来完成的)。可能New-Qaduser不会做这个检查。

通常,用户的唯一标识符是samAccountName. 如果不设置UserPrincipalNameAD 构建默认:用户主体名称有两部分:UPN 前缀(用户帐户名)和 UPN 后缀(DNS 域名)。这些部分通过 at 符号 (@) 符号连接在一起以构成完整的 UPN。例如,在示例域中拥有帐户的用户某人的 UPN 为“someone@example.com”。

于 2013-01-17T11:14:34.187 回答