我正在尝试使用 CSV 文件、PowerShell 和 Quest 的 AD CmdLets 将用户导入 AD。添加用户时未添加 UserPrincipleName。
以下是一个示例 CSV:
名字、姓氏、显示名称、SamAccount、用户主体名称、电子邮件
FirstA,LastA,"第一个姓氏",FLastAL.ou1,[电子邮件保护],[电子邮件保护] 第一2A,最后一2A,“第一2最后一”,FLast2AL.ou1,[电子邮件保护],[电子邮件保护]
以下是 PowerShell 代码片段:
$Users = Import-Csv $UserFile
foreach ($User in $Users)
{
New-QADUser -FirstName $User.FirstName -LastName $User.LastName -DisplayName $User.DisplayName -SamAccountName $User.SamAccount -Name $User.SamAccount -UserPrincipalName $User.UserPrincipalName -ParentContainer "OU=$OUName,OU=Customers,DC=clients,DC=domain,DC=local"
}
答案1
我认为问题在于我们使用的是不使用 RUS 的 Exchange 2007。当我使用 Exchange 2007 CmdLets 执行相同操作时,一切都正常运行。
答案2
您不需要设置 UPN,它会自动为您生成:http://msdn.microsoft.com/en-us/library/ms680857(VS.85).aspx
即使您确实设法设置了它(我们也设置了一次),您也会创建 UPN 不遵循惯例的情况,因此您可能会面临某些地方发生故障的风险(通常是假定它始终遵循惯例的应用程序)。
答案3
我不知道为什么 New-QADUser cmdlet 不允许您直接分配 UPN。这应该没问题。不过,如果您要处理大量帐户,速度会稍微慢一些
$Users = Import-Csv $uf
$OUName = "some specified OU"
foreach ($User in $Users)
{
$u = New-QADUser -FirstName $User.FirstName -LastName $User.LastName -DisplayName $User.DisplayName -SamAccountName $User.SamAccount -Name $User.SamAccount -UserPrincipalName -ParentContainer "OU=$OUName,OU=Customers,DC=clients,DC=domain,DC=local"
$u.UserPrincipalName = $user.UserPrincipalName
}
答案4
我检查了最新的 QAD 版本 (v1.2),它运行良好。