我正在构建一个脚本来为客户自动化AD部署。我们在CSV文件中有一个准备好的用户和组列表。这些组按照以下格式组织在一个文件中。请记住,我使用相同的CSV文件来创建AD组(在上一步中会发生)。
Name,Description,Members
GroupName,GroupDescription,"user1,user2,user3"
我用来将用户添加到群组的代码如下:
$groups = Import-CSV -Path $groupCSVPath
$groups | % { Add-ADGroupMember -Identity $_.Name -Members $_.Members }
这会导致错误: Get-ADUser:找不到具有标识的对象:' user1,user2,user3' 。
如果我尝试以下操作,它会起作用:
Add-ADGroupMember -Identity "GroupName" -Members user1,user2,user3
该错误似乎引用了Get-ADUser命令,该命令不接受数组作为输入。但是,Add-ADGroupMember命令可以。使用Add-ADGroupMember命令时为什么会出现Get-ADUser错误?如何让它接受AD用户名的值数组?
答案 0 :(得分:1)
棘手的一个。问题是由于$_.members
的工作方式,Add-ADGroupMember
参数作为单个字符串而不是单独值的数组传递给Import-CSV
cmdlet。 Get-Help Add-ADGroupMember
表明members
参数需要数组,而不是字符串。
这应该有用,我已经测试过了:
$groups | % { Add-ADGroupMember -Identity $_.Name -Members $_.members.split(',') }