Windows/PowerShell/AddCsvEmailToAdGroup
- Reads CSV file with colums with headings "name, email", only uses email to do AD lookup.
- If multiple matches, just add first to group, save 1,2 into output csv.
Import-Module ActiveDirectory
$csvFileIn = “C:\temp\Users-To-Add.csv”
$csvFileOut = “C:\temp\Users-To-Add-out.csv”
$Server = "obt-mgmt-p01.mrp.net.nz"
$GroupName = "Atlassian"
$Group = Get-ADGroup -Identity "CN=$($GroupName),OU=Office,OU=Security,OU=Groups,OU=Production,DC=comp,DC=co,DC=nz"
Write-Host("Group $($Group)")
(Import-Csv -Path $csvFileIn) |
Select-Object *,@{Name='UserId1';Expression={'setvalue'}},@{Name='UserId2';Expression={'setvalue'}} |
ForEach-Object {
$emailx = $_.email
$user = Get-ADUser -Filter {Emailaddress -eq $emailx }
#Write-Host ("user -$($_.email)- -$($user)-")
$user1 = $user | Select-Object -first 1
$_.UserId1 = $user1
$_.UserId2 = $user | Select-Object -Skip 1
Add-ADGroupMember -Identity $Group -Members $user1
$_
} | Export-Csv $csvFileOut