我正在编写一个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执行此操作时,命令将成功执行?
不解! 很多你的输入!
答案 0 :(得分:1)
Active Directory本身不会强制UPN的唯一性。创建或修改UPN的过程负责检查唯一性(这通过查询全局编录来完成)。
可能New-Qaduser
不会进行此项检查。
通常,用户的唯一标识符为samAccountName
。
如果未将UserPrincipalName
AD版本设置为默认值:
用户主体名称包含两部分:UPN前缀(用户帐户名称)和UPN后缀(DNS域名)。这些部件通过符号(@)符号连接在一起,形成完整的UPN。例如,用户在示例域中拥有帐户的人的UPN为“someone@example.com”。