活动目录Add-QADUser - 什么是唯一标识符?

时间:2013-01-17 09:42:07

标签: powershell active-directory

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

我是Active Directory的新手,正在使用this useful graphic maps to link UI label to AD attributes

我希望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'

两个帐户都会创建好,唯一的区别是 -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执行此操作时,命令将成功执行?

不解! 很多你的输入!

1 个答案:

答案 0 :(得分:1)

阅读此microsoft KB和此msdn library

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

通常,用户的唯一标识符为samAccountName。 如果未将UserPrincipalName AD版本设置为默认值: 用户主体名称包含两部分:UPN前缀(用户帐户名称)和UPN后缀(DNS域名)。这些部件通过符号(@)符号连接在一起,形成完整的UPN。例如,用户在示例域中拥有帐户的人的UPN为“someone@example.com”。