PowerShell从特定组中删除所有用户

时间:2014-10-10 16:22:49

标签: powershell command-line active-directory

我尝试通过在Windows 2008 R2 Standard,PowerShell 2.0上执行以下命令来清除本地组test_group中的所有用户。

Get-ADGroupMember "test_group" | ForEach-Object {Remove-ADGroupMember "test_group" $_ -Confirm:$false}

它会抛出以下错误,很可能是因为我使用的是v2.0?:

  

术语' Get-ADGroup会员'不被识别为a的名称   cmdlet,函数,脚本文件或可操作程序。检查   拼写名称,或者如果包含路径,请验证路径   是正确的,然后再试一次。在第1行:char:18 + Get-ADGroupMember<<<<   " test_group" | ForEach-Object {Remove-ADGroupMember" test_group" $ _   -Confirm:$ false} + CategoryInfo:ObjectNotFound:(Get-ADGroupMember:String)[],CommandNotFoundException +   FullyQualifiedErrorId:CommandNotFoundException

我从这篇文章及其评论中尝试了很多想法,但我无法工作,但我不是系统管理员而且我不确定我是否不会错过什么?: http://blogs.technet.com/b/heyscriptingguy/archive/2009/07/28/hey-scripting-guy-how-do-i-remove-all-group-members-in-active-directory.aspx

请帮助,我周一有大约300个小组要清理,我不想手动做...

4 个答案:

答案 0 :(得分:5)

不确定你是否这是一个拼写错误,或者这就是你运行命令的方式,但它应该是get-adgroupmember

Get-ADGroupMember "test_group" | ForEach-Object {Remove-ADGroupMember "test_group" $_ -Confirm:$false}

那对我有用的必须刷新ADUC ou才能看到改变

修改

首先导入ActiveDirectory模块,然后尝试运行命令。

import-module activedirectory
Get-ADGroupMember "test_group" | ForEach-Object {Remove-ADGroupMember "test_group" $_ -Confirm:$false}

答案 1 :(得分:4)

这是另一种方式:

Remove-ADGroupMember "test_group" -Members (Get-ADGroupMember "test_group") -Confirm:$false

答案 2 :(得分:0)

set-adgroup -clear 
对我来说,棘手的部分是记住使用ldap attr。名字,“成员”而不是“成员”,直觉上来自get-adgroup -prop成员的低级成员

要修改对象属性,必须使用 LDAP 显示名称: Documentation

答案 3 :(得分:0)

基于Zhenia Shapiro's的答案:

Get-ADGroup "test_group" | Set-ADGroup -Clear member