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
我正在使用脚本从 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