问题
2022年3月2日星期三 上午2:14
工程师,您好!
目前有一个需求:根据用户名单批量把用户从组中删除,请协助我完成,谢谢
全部回复 (14)
2022年3月3日星期四 上午3:01 ✅已答复
您好,
根据上面贴出的报错,请检查CSV文件中的第一行(即列头),确认是SamAccountName没有拼写错误,并且没有空;或者其他非打印字符。
如果正常的话,下面这个会显示出CSV文件中SamAccountName列里的用户名。
(Import-Csv -Path C:\scripts\userdata.csv).SamAccountName
祝好
Please remember to mark the replies as answers if they help.
2022年3月7日星期一 上午8:25 ✅已答复
您好,
上面这个错误和之前所贴出的是一样的报错,首先还是请确保C:\CSV\user.csv这个文件中的中列头是SamAccountName。
至于计算机的SamAccountName属性,可以用Get-ADComputer命令查看,通常是$结尾。例如下面这台WEBSERVER的SamAccountName属性是WEBSERVER$
祝好
Please remember to mark the replies as answers if they help.
2022年3月2日星期三 上午3:06
你好,建议参考:Remove-ADGroupMember (ActiveDirectory) |微软文档 (microsoft.com)
方式一:通过逗号分隔删除指定账号
Remove-ADGroupMember -Identity "GroupName" -Members username01,username02,…
方式二:通过导出到CSV文件后整理好指定需要在组内删除的账号列表,然后通过CSV列表调用在AD组内删除指定的账号
- 导出组内用户:使用记事打开导出的CSV文档把不需要移出组的用户删除
Get-ADGroupMember "GroupName" | Format-Table SamAccountName > C:\scripts\userdata.csv
组所属账号导出后需要打开编辑如下图:(账号后面如有空;需要删除空;)
- 通过以下命令把userdata.csv的用户在指定组内移出并显示移除用户列表
Import-Csv -Path C:\scripts\userdata.csv | foreach-object -process {Remove-AdGroupMember -Identity GroupName -Member $_.SamAccountName -Confirm:$false
$_.SamAccountName
}
2022年3月2日星期三 上午8:21
你好
我使用方法二操作如下:
1. 导出组中用户信息
2. 打开导出文件删除需要保留的用户
3. 运行移除脚本报错:
Remove-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 110
; ... upName -Member $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Remove-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember
Remove-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 110
; ... upName -Member $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Remove-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember
2022年3月2日星期三 上午9:21
你好,根据你的报错信息应该是命令行中GroupName没有修改为AD组的名称?请确认,如果还不能成功建议把执行的命令行、报错信息、CSV档截图提供分析。
Import-Csv -Path C:\scripts\userdata.csv | foreach-object -process {Remove-AdGroupMember -Identity GroupName -Member $_.SamAccountName -Confirm:$false
$_.SamAccountName
}
2022年3月3日星期四 上午2:19
你好
1. 导出用户组
2. 打开导出文件,把需要删除的人员保留,另存为文本
3. 运行脚本后发现文本保留的人员为移除的人员
请确认,谢谢
2022年3月3日星期四 上午7:57
你好
现在可以了,可以在给我一个把用户添加到组中的方法,可以上面的两种一样,谢谢
2022年3月4日星期五 上午2:27
您好,
如果是添加用户到组,假设仍然是把用户的SamAccountName写在CSV文件中,那么只需要将上面脚本中的Remove-ADGroupMember命令直接改成Add-ADGroupMember,例如还是上面Bill.Li给出的脚本
Import-Csv -Path C:\scripts\userdata.csv | ForEach-Object -Process {
Add-ADGroupMember -Identity GroupName -Members $_.SamAccountName -Confirm:$false
}
至于添加计算机到组,和添加用户是一样的,只是要将CSV文件中的SamAccountName改成计算机的。
祝好
Please remember to mark the replies as answers if they help.
2022年3月4日星期五 上午2:45
你好,需要批量导入用户到AD组,可以接着使用上面的CSV文档模板,通过下面的代码完成操作:
注:代码中的两处GroupName需要修改为你所操作的组名。
Import-Csv -Path C:\scripts\userdata.csv | foreach-object -process {
Add-ADGroupMember GroupName $_.SamAccountName;
Write-Host "- "$_.SamAccountName" added to "GroupName
}
2022年3月4日星期五 上午6:08
你好
1. 你说的把SamAccountName改成计算机的,应该是什么
如下两条都报错
1.
PS C:\Windows\system32> Import-Csv -Path C:\csv\user.csv | ForEach-Object -Process {
Add-ADGroupMember -Identity uesrtest -Members $_.SamAccountName -Confirm:$false
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity uesrtest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity uesrtest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity uesrtest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
2.
PS C:\Windows\system32> Import-Csv -Path C:\csv\user.csv | foreach-object -process {
Add-ADGroupMember usertest $_.SamAccountName;
Write-Host "- "$_.SamAccountName" added to "usertest
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
2022年3月4日星期五 上午7:46
你好,根据你提供的报错代码,第一次执行是你增加了多余的参数-Members,第二次执行报错是你的AD内没有创建usertest这个组。
建议上面提供的PowerShell代码你直接拷贝后只需要修改GroupName为你的目标AD组的名称,其他不需要修改,CSV也只是需要把你要写你添加的用户列表即可。具体可参考图:
2022年3月4日星期五 上午8:05
你好
1.第一条是我从你上面复制的,刚刚又操作一次去掉了-Members参数,还是报错
2. 还是报错
3. 组查询
PS C:\Windows\system32> Import-Csv -Path C:\csv\user.csv | ForEach-Object -Process {
Add-ADGroupMember -Identity usertest $_.SamAccountName -Confirm:$false
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 42
; Add-ADGroupMember -Identity usertest $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 42
; Add-ADGroupMember -Identity usertest $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 42
; Add-ADGroupMember -Identity usertest $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
PS C:\Windows\system32> Import-Csv -Path C:\csv\user.csv | foreach-object -process {
Add-ADGroupMember usertest $_.SamAccountName;
Write-Host "- "$_.SamAccountName" added to "usertest
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
PS C:\Windows\system32> Import-Csv -Path C:\csv\user.csv |ForEach-Object -Process {Add-ADGroupMember usertest $_.samAccountName;Write-Host "_"$_.samAccountName" added to"usertest}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 87
; ... ember usertest $_.samAccountName;Write-Host "_"$_.samAccountName" added to"usert ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
_ added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 87
; ... ember usertest $_.samAccountName;Write-Host "_"$_.samAccountName" added to"usert ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
_ added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 87
; ... ember usertest $_.samAccountName;Write-Host "_"$_.samAccountName" added to"usert ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
_ added to usertest
2022年3月4日星期五 上午9:07
你好,感觉你没有仔细看,你使用的代码根本就不对:请仔细核对你的代码,不要套用在组内移除所属用户的代码了!!!
2022年3月7日星期一 上午5:49
你好
我又重新看了一便运行还是报错,不知道是哪里错了
PS C:\Windows\system32> Import-Csv -Path C:\CSV\user.csv | ForEach-Object -Process {
Add-ADGroupMember -Identity usertest -Members $_.SamAccountName -Confirm:$false
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity usertest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity usertest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 51
; Add-ADGroupMember -Identity usertest -Members $_.SamAccountName -Confirm:$fa ...
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
PS C:\Windows\system32> Import-Csv -Path C:\CSV\user.csv | foreach-object -process {Add-ADGroupMember -Identity usertest -Member $_.SamAccountName -Confirm:$false
$_.SamAccountName
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 106
; ... ertest -Member $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 106
; ... ertest -Member $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:1 字符: 106
; ... ertest -Member $_.SamAccountName -Confirm:$false
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
PS C:\Windows\system32> Import-Csv -Path C:\CSV\user.csv | foreach-object -process {
Add-ADGroupMember usertest $_.SamAccountName;
Write-Host "- "$_.SamAccountName" added to "usertest
}
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest
Add-ADGroupMember : 无法对参数“Members”执行参数验证。参数为 Null 或空。请提供一个不为 Null 或空的参数,然后重试该命令。
所在位置 行:2 字符: 28
; Add-ADGroupMember usertest $_.SamAccountName;
; ~~~~~~~~~~~~~~~~~
; CategoryInfo : InvalidData: (:) [Add-ADGroupMember],ParameterBindingValidationException
; FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
- added to usertest