Powershell 将多个用户添加到广告中的组

Powershell 将多个用户添加到广告中的组,powershell,active-directory,Powershell,Active Directory,我有一个CSV文件,其中包含他们所属的用户和组的列表。我正在尝试使用PowerShell编写相同的脚本以实现自动化,但似乎遇到了一个错误。当我尝试调试它时,我看到由于某种原因,用户名值为空 任何帮助都会有帮助 $Users = import-csv -Path "C:\Scripts\listofusers.csv" foreach-Object ($User in $Users) { $SAM = $User.'SAM' $group = $User.'Group'

我有一个CSV文件,其中包含他们所属的用户和组的列表。我正在尝试使用PowerShell编写相同的脚本以实现自动化,但似乎遇到了一个错误。当我尝试调试它时,我看到由于某种原因,用户名值为空

任何帮助都会有帮助

$Users = import-csv -Path "C:\Scripts\listofusers.csv" 

foreach-Object ($User in $Users)
{
    $SAM = $User.'SAM'
    $group = $User.'Group'

    Add-ADGroupMember -Identity $group -Members "$SAM"
}
测试数据

Group                  SAM

IT                     Test1   
Engineering            Test3 

若数据和您编写的一样,那个么在从CSV导入数据时需要定义分隔符。默认情况下,分隔符是逗号,所以它不适合您的数据。只用

 $Users = import-csv -Path 'C:\Scripts\listofusers.csv' -Delimiter ' '
如果这不是空格,而是制表符,则在t前面使用't'这是倒勾。

更改:

foreach-Object ($User in $Users) 
致:

foreach语句在对象集合上迭代,而foreach对象在管道中使用

因此,请尝试以下方法:

$Users = import-csv -Path "C:\Scripts\listofusers.csv" 
foreach ($User in $Users) { 
$SAM = $User.'SAM' 
$group = $User.'Group' 
Add-ADGroupMember -Identity $group -Members "$SAM" 
}

你就不能把那个坏小子扔进一个For-Each循环,然后结束它吗?即使定义了分隔符的类型,它也不接受。如果我保持组名不变,并添加多个用户,则会确认组名,但我无法将其自动化,以同时获取不同的组名和用户名。我已修改了答案,以包含完整代码-请尝试此操作。要确认csv中的标题仍然是group和sam?没有区别。我将把这个组设置为常量,看看它是否会改变post,这将调试为什么循环不工作。我认为问题在于你的csv文件。尝试使用excel重新创建您的csv,但将其另存为csv,然后重试,确保标题保持不变,即sam和groupYa我正在考虑这个问题,但遇到了相同的问题。我在看我是否应该上传它作为一个文本而不是csv,将保持你张贴,如果这改变了什么。谢谢你的帮助。
$Users = import-csv -Path "C:\Scripts\listofusers.csv" 
foreach ($User in $Users) { 
$SAM = $User.'SAM' 
$group = $User.'Group' 
Add-ADGroupMember -Identity $group -Members "$SAM" 
}