批量AD用户创建

时间:2015-09-12 16:29:55

标签: powershell active-directory powershell-v3.0

我正在开发一个PowerShell命令,其中我有一个具有某些属性的.csv文件,但实际上我很难完成它。

我的.csv文件的属性按以下顺序排列:

  • 的UserPrincipalName
  • sAMAccountName赋
  • 密码
  • 给定名称
  • SN
  • 的displayName
  • 描述
  • 路径
  • 标题
  • 公司
  • 的memberOf
  • mustChangePassword

我目前的代码是:

$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

1 个答案:

答案 0 :(得分:1)

错误消息非常简单。如果您查看New-ADUser cmdlet的文档,则会发现它没有参数-memberOf。要将新创建的用户添加到组,请使用Add-ADGroupMember cmdlet。

$Account = New-ADUser ... -PassThru
Add-ADGroupMember -Identity $Group -Members $Account

这假设CSV中的memberOf字段只包含一个组名或专有名称。

附加参数-PassThru允许您将创建的帐户对象分配给变量,因此您可以在组分配中使用该变量。如果没有该参数,New-ADUser将以静默方式运行(无输出)。