通过csv文件将多个用户添加到AD中的多个组

时间:2019-06-14 05:24:35

标签: powershell active-directory

我试图将多个用户从一个csv文件添加到多个组中,并且在过去几周中浏览了有关将多个用户添加到多个组中的每篇文章,但是由于csv文件的性质,我无法正确执行它。

csv文件中的数据如下所示

Username,FACULTY01,FACULTY02,FACULTY03,FACULTY04
"User1,group1,group2,group3"
"User2,group1,,group3,group4"
"User3,,group2,,group4"

有20个以上的小组,每个成员可以是在教师标题下找到的1-4个小组的一部分

我有以下代码

Import-Module ActiveDirectory

$csv = Import-csv C:\TestADGroupADD.csv -Header ('Username', 'FACULTY01', 'FACULTY02', 'FACULTY03', 'FACULTY04')

ForEach-Object {
   $username = $_.Username
   $Faculty = $_."Faculty01,FACULTY02,FACULTY03,FACULTY04"
   }

Foreach($Faculty in $csv){
   if ($Faculty -eq 'ADMINISTRATION') { Add-ADGroupMember -Identity $Faculty -Member $username }

   if ($Faculty -eq 'Accounting') { Add-ADGroupMember -Identity $group  -Member $username }

   if ($Faculty -eq 'SCIENCE') { Add-ADGroupMember -Identity $group  -Member $username }

   if ($Faculty -eq 'SALES') {  Add-ADGroupMember -Identity $groupe  -Member $username }

   if ($Faculty -eq 'DEANSFUND') {  Add-ADGroupMember -Identity $group  -Member $username }

   }

我有一种感觉,我必须使用一种不同的方法将这些能力组合成一个变量,但是我尝试了一个却仍然失败-我是PowerShell的初学者

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

$faculties = @("FACULTY01", "FACULTY02", "FACULTY03", "FACULTY04")
$csv = Import-csv C:\temp\test.csv -Header (@("UserName") + $faculties)

foreach ($user in $csv | Select-Object -Skip 1)
{
    foreach ($faculty in $faculties)
    {
        if ($user.$faculty)
        {
            Add-ADGroupMember -Identity $user.$faculty -Member $user.UserName
        }
    }
}