New-Aduser : The object name has bad syntax

本小妞迷上赌 提交于 2020-01-17 04:22:22

问题


I have a script which i use to create bulk users from a csv file which works fine.

Import-Csv e:\temp\newemps.csv | %{
    $ou = $_.ou
    $firstname = $_.first
    $lastName = $_.last
    $accountName = $("{0}{1}" -f $firstname.Substring(0,1),$lastName).ToLower()
    $description = $_.desc
    $password = "Welcome1"
    $name = "$firstName $lastName"
    New-AdUser -SamAccountName $accountName -GivenName $firstName -UserPrincipalName "$accountName@ba.net" -Surname $lastName -DisplayName $name  -Name $name -AccountPassword (ConvertTo-SecureString -AsPlainText $password -Force) -Enabled $true -Path $ou -Description $description -ChangePasswordAtLogon:$False

    If ($_.Group -ne ""){
        Add-adgroupmember -identity $_.group  -members $accountName
    }

    If ($_.email -eq "y"){
        Enable-Mailbox -Identity $accountName -Alias $accountName
        Set-Mailbox $accountName -MaxSendSize 10mb -MaxReceiveSize 10mb
        Get-CasMailbox $accountName -OwaEnabled:$false -ActiveSyncEnabled:$false
    }
}

I was trying modify this script so that i could create some generic accounts that would not follow our typical convention. The input is a here-string as supposed to a csv as the only unique item is an Airport code. I have shortened the here-string for brevity.

$bases = @"
YAB
YEK
YYH
YHI
"@

$bases.Split("`n") | %{    
    $ou = "CN=Users,DC=BA,DC=NET"
    $firstname = "$_".ToString()
    $lastName = "Counter"
    $accountName =  "$_" + "Counter"
    $description = "Base Front Counter"
    $password = "Welcome1"
    $name = "$firstName $lastName"
    New-AdUser -SamAccountName $accountName -GivenName $firstName -UserPrincipalName "$accountName@ba.net" -Surname $lastName -DisplayName $name  -Name $name -AccountPassword (ConvertTo-SecureString -AsPlainText $password -Force) -Enabled $true -Path $ou -Description $description -ChangePasswordAtLogon:$False
}

There is something about using a here-string that I am not accounting for. The only account it successfully creates is the one for YHI (The last one of the here-string). For all others it gives New-AdUser : The object name has bad syntax. Internet research shows many errors for csv-imports where the data has whitespace and other issues there but im not sure what the issue is here.

In the end I just made a csv file instead of using the here-string but I would like to know what i was doing wrong.


回答1:


This worked for me. got rid of the null values and the new line values and just gave me each string value from each line. Seams there may have been some white space or some other characters that interfere if you just do split "`n"

$test = @"
user1
user2
user3
"@
$test.split(“`r`n”) | ForEach-Object {if($_){get-aduser $_}}


来源:https://stackoverflow.com/questions/25272775/new-aduser-the-object-name-has-bad-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!