New-ADUser 正在处理对象,出现错误 "The parameter is incorrect"

New-ADUser processing an object, getting error "The parameter is incorrect"

我正在使用脚本从 word 文档中读取信息并将其放入 csv 中。当我打开 csv 时,信息包含在双引号内。

这是 CSV 文件:

fname,lname,jobtitle,department,manager,pagernumber
"Test","Taco","MedAssist","TestingDepot","BOSSMAN","9999"
"Test","T","TestingDummy","4220","Bossman","9990"

我使用的New-AdUser代码不正确,所以我发布代码以供查看。

#_________________________________EXCEL TIME_________________________________


#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv C:\Users\username\Desktop\newusers.csv

#Loop through each row containing user details in the CSV file 
foreach ($User in $ADUsers)
{
    #Read user data from each field in each row and assign the data to a variable as below
    $fname = $User.fname
    $fname = $fname | Out-String
    $lname = $User.lname
    $lname = $lname | Out-String
    $fn1 = $fname.Substring(0,1)
    $username = "$fn1$lname"
    $jobtitle = $User.jobtitle
    $jobtitle = $jobtitle | Out-String 
    $department = $User.department
    $department = $department | Out-String
    $manager = $User.manager
    $manager = $manager | Out-String
    $pagernumber = $User.pagernumber
    $pagernumber = $pagernumber | Out-String
    Write-Output $fname
    Write-Output $lname
    
    #Check to see if the user already exists in AD
    if (Get-ADUser -F {SamAccountName -eq $username})
    {
         #If user does exist, give a warning
         Write-Warning "A user account with username $username already exists in Active Directory."
           pause
    }
    else
    {
        #User does not exist then proceed to create the new user account 
      
        $userProps = [PSCustomObject]@{
        SamAccountName  = $username
        Name            = "$fname $lname"
        GivenName       = $fname
        Surname         = $lname
        Enabled         = $True
        DisplayName     = "$lname $fname"
        Company         = "Companyname"
        AccountPassword = (ConvertTo-SecureString "Password" -AsPlainText -Force)
        HomeDrive       = "X:"
        ScriptPath      = "K32.exe"
        OtherAttributes = @{pager=$pagernumber}
        Title           = $jobtitle
        Department      = $department
        Description     = $jobtitle
        # Manager       = $manager
        # HomeDirectory = $folder
                      }

        New-ADUser @userProps
        #Profile - (Home Folder) Local Path should have U:\ As well as fix the remote tab to also have U:\ 

在 运行 这段代码之后,我得到的错误是:

New-ADUser : The parameter is incorrect

如何正确地将对象传递给 New-ADUser

我已经阅读了你的代码,你似乎做了一些额外的不必要的事情。

为什么要使用 | out-string

删除它,使您的代码看起来像这样


foreach ($User in $ADUsers)
{
    #Read user data from each field in each row and assign the data to a variable as below
    $fname = $User.fname
    $lname = $User.lname
    $fn1 = $fname.Substring(0,1)
    $username = "$fn1$lname"
    $jobtitle = $User.jobtitle
    $department = $User.department
    $manager = $User.manager
    $pagernumber = $User.pagernumber
    Write-Output $fname
    Write-Output $lname
    
    #Check to see if the user already exists in AD
    if (Get-ADUser -F {SamAccountName -eq $username})
    {
         #If user does exist, give a warning
         Write-Warning "A user account with username $username already exists in Active Directory."
           pause
    }
    else
    {
        #User does not exist then proceed to create the new user account 
      
        $userProps = @{
        SamAccountName  = $username
        Name            = "$fname $lname"
        GivenName       = $fname
        Surname         = $lname
        Enabled         = $True
        DisplayName     = $lname + $fname
        Company         = "Companyname"
        AccountPassword = (ConvertTo-SecureString "Password" -AsPlainText -Force)
        HomeDrive       = "X:"
        ScriptPath      = "K32.exe"
        OtherAttributes = @{pager=$pagernumber}
        Title           = $jobtitle
        Department      = $department
        Description     = $jobtitle
        # Manager       = $manager
        # HomeDirectory = $folder
        }

        New-ADUser @userProps -Verbose
    }
}

此外,如果您想查看您的散列 table 作为对象的样子,请使用此代码

[array]$obj = New-Object psobject -Property $userProps