Add a UPN

This topic contains 0 replies, has 1 voice, and was last updated by  Forums Archives 5 years, 7 months ago.

  • Author
    Posts
  • #5650

    by NeatAccurateTypist at 2013-03-11 14:54:08

    I used Import-CSV to create a load of AD accounts today but forgot to add the UserPrincipalName property.

    I realise I should have added something like: -UserPrincipalName ($_.samAccountName + '@domain.com') in my original command, but now I'm trying to add the UPN to the newly-created accounts.

    I'm trying something along the lines of:

    Get-ADUser -filter * -SearchBase 'OU=OrganizationlUnit,DC=domain,DC=com' | Set-ADUser -UserPrincipalName ......

    What's the equivalent of "($_.samAccountName + '@domain.com')" for accounts that already exist, but have no UPN?

    Thanks.

    by DonJ at 2013-03-13 08:00:25

    You need to chuck in a ForEach.

    Get-ADUser -filter * | ForEach { Set-ADUser }

    Within the {} you'll have $_ again.

    by NeatAccurateTypist at 2013-03-13 08:36:58

    Thanks I've tried this but I'm getting this reply:

    cmdlet Set-ADUser at command pipeline position 1

    by DonJ at 2013-03-13 08:40:27

    Ok, so show me the exact command you tried to run that gave you that error.

    by NeatAccurateTypist at 2013-03-13 09:00:31

    I've been trying a few things, with and without parentheses within the curly brackets, along the lines of:

    Get-ADUser -filter * | ForEach { Set-ADUser -UserPrincipalName ($_.samAccountName + '@domain.com') }

    by MasterOfTheHat at 2013-03-13 09:36:08

    I don't have a test domain to verify it on, but it should be as simple as:
    Get-ADUser -filter * | ForEach { Set-ADUser -UserPrincipalName "$($_.samAccountName + '@domain.com')" }

    Note the quotes and extra $ in the -UserPrincipleName parameter...

    by NeatAccurateTypist at 2013-03-13 09:47:57

    Thanks MasterOfTheHat,

    I've tried your suggestion, but I'm still getting the following message:

    cmdlet Set-ADUser at command pipeline position 1
    Supply values for the following parameters:
    Identity:

    by MasterOfTheHat at 2013-03-13 10:45:18

    AH! Makes sense... The Set-ADUser command doesn't know what user object to apply the UPN to! Sorry I forgot that. Try:
    Get-ADUser -filter * | ForEach { Set-ADUser -Identity "$_.samAccountName" -UserPrincipalName "$($_.samAccountName + '@domain.com')" }

    by NeatAccurateTypist at 2013-03-14 05:57:20

    Thanks MasterofTheHat!

    I tried that and it needed a slight adjustment (I had to remove the quotes from around the first "$_.samAccountName" and then it ran perfectly).

    Did exactly what I needed! Thanks again!

    🙂

You must be logged in to reply to this topic.