我一直在尝试使用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个组,也许有更好的方法?这里有什么简单的东西吗?
答案 0 :(得分:2)
有时这样的问题是由输入数据文件中的意外数据(或缺少)引起的。我认为bower_components/angular-nouislider/src/nouislider.js
比Get-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 ';'