I am trying to import users into AD using a CSV file, PowerShell, and Quest's AD CmdLets. When the users are added the UserPrincipleName is not added.

Here is a sample CSV:


FirstName,LastName,DisplayName,SamAccount,UserPrincipleName,Email

FirstA,LastA,"First Last",FLastAL.ou1,FLastAL.ou1@clients.domain.local,FLastA@outemail.com First2A,Last2A,"First2 Last",FLast2AL.ou1,FLast2AL.ou1@clients.domain.local,FLast2A@outemail.com


Here is the PowerShell snippit:

$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"
}
link|improve this question

80% accept rate
feedback

4 Answers

You don't need to set the UPN, it's automatically generated for you: http://msdn.microsoft.com/en-us/library/ms680857(VS.85).aspx

Even if you did manage to set it (and we did once) you're creating a situation where the UPN does not follow convention, so you run the risk of something breaking somewhere down the line (normally an application that assumes it always follows convention).

link|improve this answer
Hey mh. Thanks for the feedback. I initially tried not setting it an it did not get created automatically. I assumed that was an artifact of the way the New-QADUser CmdLet added the user. That is why I tried setting it but that isn't working either. – Matt Spradley Jun 1 '09 at 18:40
Been a while since I checked but if memory serves the UPN is created when the user logs on or something similar. – mh. Jun 1 '09 at 19:19
feedback

I don't know why the New-QADUser cmdlet won't let you assign the UPN directly. This should work just fine. Although it will be a little bit slower if you are processing a very large number of accounts

$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
}
link|improve this answer
feedback

I checked with the latest QAD release (v1.2) and it works just fine.

link|improve this answer
feedback
up vote 0 down vote accepted

I think the problem was the fact that we are using Exchange 2007 which does not use RUS. When I used the Exchange 2007 CmdLets to do the same thing everything is working correctly.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.