i have csv client few columns in it. column email, samaccountname, securitygroups.
in security group column, each security group separated ',' each row below
user1 user1@email.com securitygroup1, securitygroup2, securitygroup3 user2 user2@email.com securitygroup1, securitygroup2, securitygroup3 user3 user3@email.com securitygroup13, securitygroup5, securitygroup6 a list of users in different security groups, how go reading csv , adding security groups each user needs.
below have far, when run in whatif mode adds security groups 1 user.
clear $adgroup = $null $i = 0 $adgroup = import-csv 'file.csv' $sadgroup = $adgroup.'groups required' import-csv "testusers.csv" | % { $sam = $_.samaccountname $aduser = get-aduser -filter {samaccountname -eq $sam} -properties * | select samaccountname, memberof write-host 'samaccountname :' $_.samaccountname ' - aduser - ' $sam $sadgroup | foreach-object{ write-host $adgroup.adgroup[$i] add-adgroupmember $sadgroup.split(",")[$i] -members $aduser.samaccountname -whatif $i += 1 } }
here final script, using ad-adprincipalgroupmembership find, instead of using add-adgroupmember
import-csv 'testusers.csv' | foreach-object { add-content $logfile "adding user group - $($_.name)" try{ add-adprincipalgroupmembership -identity $_.'samaccountname' -memberof ($_.'groups' -split', ') } catch { add-content $logfile "error adding user group - $($_.name)" } }
Comments
Post a Comment