错误New-ADUser:提供的用户缓冲区无效

时间:2019-03-11 12:13:34

标签: windows powershell server scripting

I made a PowerShell script to create Active Directory users from a CSV file. For one specific user I get this error

如您所见,该用户已成功创建。所有其他用户也已创建。有人知道这个错误是什么意思吗?

脚本:

Import-Module ActiveDirectory
$csv_file = Read-Host -Prompt "Path naar CSV bestand?"
$pwd = Read-Host -Prompt "Password for users?" -AsSecureString
$csv_file = $csv_file.Replace('"','')
$csv_list = Import-Csv $csv_file

$domainname = Get-ADDomain
$domainname = $domainname.DNSRoot
$server = hostname
$usernames = (get-aduser -Filter *).name
$i = 0
foreach ($adUser in $csv_list) {

    

    $department = $adUser.Department
    if ($adUser.GivenName) {
         $givenname = $adUser.GivenName
}
    else {
         $givenname = $adUser.FirstName
}

    if ($adUser.Surname) {
         $surname = $adUser.Surname
}
    else {
         $surname = $adUser.LastName
}
    $username = ("${givenname}.${surname}" -replace (' ','')).ToLower()
    if ($username -in $usernames -eq $true) {
    $number = 1
    }
    $variableusername = $username
    while ($variableusername -in $usernames -eq $true) {
         $number += 1
         $variableusername = [string]($username + $number)
}
    $username = $variableusername
    $usernames += $username

    $sam = $username
    if ($sam.Length -gt 20) {
        $sam = $sam.Substring(0,20)
    }
    $path = (Get-ADOrganizationalUnit -Filter * | Where-Object -Property Name -eq $department).DistinguishedName | Select-Object -First 1
    if ($path -eq $False) {
        $department = Read-Host -Prompt "Could not find an OU for user $username in department ${department}. Please specify the correct OU"
        $path = (Get-ADOrganizationalUnit -Filter * | Where-Object -Property Name -eq $department).DistinguishedName | Select-Object -First 1
}
    $password = $pwd
    $email = "${username}@${domainname}"
    $title = $adUser.Title
    $dpn = "${givenname} ${surname}"
    New-ADUser -name $username -path $path -UserPrincipalName "${username}@${domainname}"  -GivenName $givenname -Surname $surname -Department $department -AccountPassword $password -EmailAddress $email -ChangePasswordAtLogon $False -Title $title -Enabled $True -Server $server -DisplayName $dpn -SamAccountName $sam
    Add-ADGroupMember -Identity "G_${department}" -Members $sam

    $i++
    Write-Progress -activity "Creating users . . ." -status "Created: $i of $($csv_list.Count)" -percentComplete (($i / $csv_list.Count)  * 100)

}   

0 个答案:

没有答案