尝试使用PowerShell脚本从Active Directory中的所有组中删除用户

Dan*_*C12 1 powershell active-directory

我正在尝试使用PowerShell脚本接受来自用户的输入,这些输入基于他们想要从所有组中删除的用户.我的语法错了吗?这是我到目前为止所拥有的.

$User1 = Read-Host -Prompt 'Enter the username of the employee you wish to change'

Get-ADUser -Identity $User1 -Properties memberof |
    Select-Object -ExpandProperty memberof |
    Remove-ADGroupMember -Identity CISCOVPN, FS-001
Run Code Online (Sandbox Code Playgroud)

其中CISCOVPN和FS-001是我想$User1删除的两个组.有没有办法说从所有组中删除?

Ans*_*ers 6

管组成Remove-ADGroupMember一个ForEach-Object循环:

Get-ADUser -Identity $User1 -Properties MemberOf | ForEach-Object {
  $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false
}
Run Code Online (Sandbox Code Playgroud)

  • @TheMadTechnician 如果您真的对其进行了测试(就像我所做的那样),您会发现它确实有效。乍一看似乎令人惊讶,但是除非将 `$_` 放在嵌套上下文中(简单地说:脚本块),否则它会在解析时进行评估。基本上,在管道中`foo $_ | bar $_` 和 `$_` 在管道中引用同一个对象 `foo $_ | bar { $_ }` 第二个`$_` 指的是第一个命令的输出对象。 (2认同)