最后使用powershell add-adgroupmember结束

时间:2016-05-08 22:22:16

标签: powershell active-directory

我一直在尝试使用Add-ADGroupmember将用户从CSV添加到群组中数小时。我总是得到错误 -

  

Add-ADGroupMember:无法验证参数' Identity'的参数。参数为null。为参数提供有效值,然后再次尝试运行该命令。"

这是我正在使用的脚本 -

import-module ActiveDirectory
import-csv y:\d1.csv -Delimiter ";" | Foreach-Object {add-adgroupmember -Identity $_.group -Members $_.name}    
group;name
"CN=example,OU=example,DC=example,DC=example,DC=example";"CN=example,OU=example,OU=example,DC=example,DC=example,DC=example"
"CN=example-AE,OU=example,DC=example,DC=example,DC=example";"CN=example,OU=example,OU=example,DC=example,DC=example,DC=example"

我有2000个用户添加到大约100个组,也许有更好的方法?这里有什么简单的东西吗?

3 个答案:

答案 0 :(得分:2)

有时这样的问题是由输入数据文件中的意外数据(或缺少)引起的。我认为bower_components/angular-nouislider/src/nouislider.jsGet-Content更容易出问题但是......

确保您没有从CSV传递空白数据(例如文件底部的空白行等)。您可以尝试通过Import-Csv检查来管道Import-Csv cmdlet的输出,以确保只有有效数据进入Where-Object循环:

Foreach-Object

显然,您也可以对Name属性执行类似的检查。

答案 1 :(得分:1)

我会做一些故障排除 这是代码的长版本。尝试get-adgroup和get-aduser将确保它有效,然后才能继续。

import-module ActiveDirectory
$csv = import-csv y:\d1.csv -Delimiter ";" 
Foreach-Object ($c in $csv ) {
get-adgroup $c.group
get-aduser $c.name

get-adgroup $c.group | add-adgroupmember Members $c.name
} 

您甚至可以尝试通过执行此操作将此限制为第一行

import-module ActiveDirectory
$csv = import-csv y:\d1.csv -Delimiter ";" 
$c = $csv[0]
get-adgroup $c.group
get-aduser $c.name
get-adgroup $c.group | add-adgroupmember Members $c.name

答案 2 :(得分:0)

如果您的CSV使用分号;作为分隔符,那么您需要告诉Import-Csv

import-csv y:\d1.csv -Delimiter ';'