我正在开发一个PowerShell命令,其中我有一个具有某些属性的.csv
文件,但实际上我很难完成它。
我的.csv文件的属性按以下顺序排列:
我目前的代码是:
$Users = Import-Csv -Path "C:\BulkUsers.csv"
foreach ($User in $Users)
{
$UPN = $User.userPrincipalName
$SAM = $User.sAMAccountName
$Password = $User.password
$UserFirstname = $User.givenName
$UserLastname = $User.sn
$Displayname = $User.givenName + " " + $User.sn
$Description = $User.description
$Path = $User.Path
$Title = $User.title
$Company = $User.company
$Group = $User.memberOf
$Department = $User.department
New-ADUser -UserPrincipalName $UPN -SamAccountName $SAM -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force) -GivenName "$UserFirstname" -Surname "$UserLastname" -DisplayName "$Displayname" -Description "$Description" -Path "$Path" -title "$Title" -company "$Company" -memberOf "$Group" -department "$Department" -ChangePasswordAtLogon $true
}
执行时遇到以下错误:
New-ADUser : A parameter cannot be found that matches parameter name 'memberOf'.
At line:15 char:292
+ ... any "$Company" -memberOf "$Group" -department "$Department" -ChangePasswordAtLo ...
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser
答案 0 :(得分:1)
错误消息非常简单。如果您查看New-ADUser
cmdlet的文档,则会发现它没有参数-memberOf
。要将新创建的用户添加到组,请使用Add-ADGroupMember
cmdlet。
$Account = New-ADUser ... -PassThru
Add-ADGroupMember -Identity $Group -Members $Account
这假设CSV中的memberOf
字段只包含一个组名或专有名称。
附加参数-PassThru
允许您将创建的帐户对象分配给变量,因此您可以在组分配中使用该变量。如果没有该参数,New-ADUser
将以静默方式运行(无输出)。