Issue with New-ADUser Cmdlet

Hi Friends,
Here I’m again with a new question.
I’m struggling with my script which add new users in bulk. I’ve referred many forum, websites & videos and they all use the exact method which I’m using but I’m getting this error after executing my script.
Here’s the error message which I receive:

New-ADUser : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again..
Below is my script which imports a csv file which have the data for my users and add certain parameters: =============================================================

Import-Csv .\KuramaUsers.csv 

ForEach-Object {
$UserPrincipalName = $.samAccountName + “@{kurama}.local” ;
New-ADUser -SamAccountName $
.samAccountName `
-UserPrincipalName $userPrincipalName `
-Name $.“name” `
-DisplayName $
.Name `
-GivenName $.Cn `
-SurName $
.Sn `
-EmailAddress $.EmailAddress `
-Title $
.Title `
-Description $.Description `
-Department $
.Department `
-Company $.Company `
-Path $
.Path `
-Enabled $false `
-PassThru `

Peace & Cheers,
Sammy Boy.

Hi Friends,
Just to add, the word “code>” at the end is not present in my script. It’s just that something which went wrong while posting.

Also, the same goes with the brown color stripes with a dot in it, they’re actually not present in my script. Not sure why it’s visible in my post.

I’ve also tried adding quotations like I shown for NAME which didn’t help.

Feel free to ask if you have any doubts with the raised concern.

Peace & Cheers,
Samson V.

The problem is most likely in your CSV. The error is telling you that Name is Mandatory and you are giving it a NULL value. You can investigate like so:

$csv = Import-Csv .\KuramaUsers.csv
$csv | Where{!$_.Name}

You also have name referenced differently that $.Name, although it shouldn’t matter I would just use $.Name unless you had a space in the header (e.g. $_.“My Name”)

    -Name $_."name" `
    -DisplayName $_.Name `

Thanks, Rob for the quick response…

So, I used your method to Test the csv file which you gave… So, the first line get the data properly as I tried looking the info of the variable and it shows the data for all the listed users in the CSV.


Name           : %STAFFNAME%

samAccountName : %STAFF USERNAME%

Cn             : %STAFF FIRSTNAME%

Sn             : %STAFF LASTNAME%

EmailAddress   : %STAFF EMAIL%

Title          : %RELEVANT INFO%

Department     : %RELEVANT INFO%

Description    : %RELEVANT INFO%

Company        : %RELEVANT INFO%

Path           : "%DESIRED OU%"

And when I run the out for “$csv | Where{!$_.Name}”, it doesn’t give any output. That is something strange for me.

With regards to the $_.Name thingy, it was just to let you all know that I even tried that. :slight_smile:

Peace & Cheers,
Samson V.

Are those % values what you are sending? If the query is coming back with nothing, that is the expected results because none of the rows have a NULL value in Name. You should also use splatting over the line continuation:

$csv = Import-CSV -Path .\KuramaUsers.csv 

foreach ($user in $csv) {
    $params = @{
        SamAccountName    = $user.samAccountName 
        UserPrincipalName = '{0}@mydomain.local' -f $user.samAccountName
        Name              = $user.Name 
        DisplayName       = $user.Name 
        GivenName         = $user.Cn 
        SurName           = $user.Sn 
        EmailAddress      = $user.EmailAddress 
        Title             = $user.Title 
        Description       = $user.Description 
        Department        = $user.Department 
        Company           = $user.Company 
        Path              = $user.Path 
        Enabled           = $false 
        PassThru          = $true 

    New-ADUser @params

Thanks, Rob for the help.

I’m now getting the below error message which your provided method.

New-ADUser : Directory object not found
At line:21 char:5
+     New-ADUser @params
+     ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (CN=%Username%...%DOMAIN%,DC=LOCAL:String) [New-ADUser], ADIdentityNotFoundEx 
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Micros 

With regards to the % sign in my previous post, that was just to avoid personal information over the forum.

I’m still unable to find the reason behind the failures.

Peace & Cheers,
Samson V.

Seems like path is wrong. Please show us the path, a sample one. Change only the content, please don’t add special character, do like CN=Users, OU=Example1, OU=example2…

Hi KV,

Even I did feel that the path is incorrect. So, I changed it & it was back to the initial error which I reported.

With regards tot he special characters, there are none in the path. I edited the output with a % sign, tp avoid publishing sensitive data on the forum.

Possibly, I’ll start from scratch again & see how’s the outcome. Thanks everyone for the inputs.

Peace & Cheers,
Samson V.