将新创建的用户添加到预先存在的组

时间:2017-11-08 16:07:36

标签: powershell active-directory

此脚本目前在从CSV文件导入数据后创建新用户

Import-Module ActiveDirectory    
Import-Csv "C:\testcsv.csv" | ForEach-Object {    
   $userPrincinpal = $_."samAccountName" + "@NWTC.local"    
   New-ADUser -Name $_.Name `    
              -Path $_."ParentOU" `    
              -SamAccountName  $_."samAccountName" `   
              -UserPrincipalName  $userPrincinpal `    
              -AccountPassword (ConvertTo-SecureString "Password1" -AsPlainText -Force) `    
              -ChangePasswordAtLogon $false  `    
              -Enabled $true    
}

这是我从中导入的csv文件:

Name,samAccountName,ParentOU,Group    
Test Test1,TTest1,"OU=Business,DC=NWTC,DC=local",TestGroup

创建用户后,我想将它们添加到已经存在的组中。将有不同的组我想要添加不同的用户,但每人只有1组。

我一直在玩Add-AdGroupMember,但我不确定如何继续。这样的事情:Add-ADGroupMember -Members $_.Members。这是我第一次使用CSV,所以我在新的领域

2 个答案:

答案 0 :(得分:1)

New-ADuser不支持此功能,因此您必须在事后自行完成此操作。您可以做的是让New-ADUser吐出它创建的AD用户对象,并将其与Add-ADGroupMember一起使用。

$newUserProperties = @{
    Name = $_.Name
    Path = $_."ParentOU"   
    SamAccountName = $_."samAccountName"   
    UserPrincipalName = $_."samAccountName" + "@NWTC.local"  
    AccountPassword = (ConvertTo-SecureString "Password1" -AsPlainText -Force) 
    ChangePasswordAtLogon = $false  
    Enabled  = $true    
}

try{
    $newADUser = New-ADUser @newUserProperties -PassThru

    Add-ADGroupMember -Identity $_.Group -Members $newADUser.SamAccountName
} catch {
    Write-Warning "Could not create $($newUserProperties.samaccountname)"
}

错误处理是粗略的,但应以某种形式存在,以解决源数据中的失败或现有用户的误解。基本上只需获取$newADUser并将其用于Add-ADGroupMember

我们在这里使用splatting参数。这样你就不必担心使用反引号来获得良好的格式化代码。

答案 1 :(得分:1)

在创建新用户后在Add-ADGroupMember中添加ForEach-Object

Import-Module ActiveDirectory    
Import-Csv "C:\testcsv.csv" | ForEach-Object {    
   $userPrincinpal = $_."samAccountName" + "@NWTC.local"    
   New-ADUser -Name $_.Name `    
              -Path $_."ParentOU" `    
              -SamAccountName  $_."samAccountName" `   
              -UserPrincipalName  $userPrincinpal `    
              -AccountPassword (ConvertTo-SecureString "Password1" -AsPlainText -Force) `    
              -ChangePasswordAtLogon $false  `    
              -Enabled $true 

   Add-ADGroupMember -Identity 'AD_GROUP_WHERE_YOU_ADD_MEMBERS' -Members $_.samAccountName
}