Powershell to remove-adgroupmembers 在文本文件中列出,其中要从中删除的组是通配符

Powershell to remove-adgroupmembers listed in a text file where the group for them to be removed from is a wildcard

我正在寻找一种方法来从任何文件中删除文本文件中列出的 AD 计算机 他们可能在同一个 OU 中的 AD 组。例如,文本文件包含:
计算机 1$
电脑2$
电脑3$

这三台计算机可能出现的组是:
第 1 组
第 2 组
第 3 组

我从 2016 年开始在 Whosebug 上从标题“PowerShell - Remove-ADGroupMember - 锁定我的管理员帐户”中找到这个并为我编辑:
Get-ADGroup-过滤器'name -like "Group*"' | Remove-ADGroupMember - 成员“Computer3$”
这可以很好地删除“Computer3$!但是当我尝试用 Foreach 中的变量替换“Computer3$”时,它会中断。这是我的代码:

$Comps = Get-Content "C:\Users\Administrator\Desktop\Complist.txt"
foreach ($comp in $comps) {
Get-ADGroup -filter 'name -like "Group*"' | Remove-ADGroupMember -Members "$Comps"
}

和错误:

Remove-ADGroupMember : Cannot find an object with identity: 'Computer1$
Computer2$ Computer3$' under: 'DC=Domain,DC=local'.
At line:3 char:53
+ ... name -like "Group*"' | Remove-ADGroupMember -Members "$Comps"
+                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Computer1...mputer3$:ADP 
   rincipal) [Remove-ADGroupMember], ADIdentityNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.Ac 
   tiveDirectory.Management.Commands.RemoveADGroupMember

任何帮助将不胜感激,提前致谢。

$Comps = Get-Content "C:\Users\Administrator\Desktop\Complist.txt"
foreach ($comp in $comps) {
Get-ADGroup -filter 'name -like "Group*"' | Remove-ADGroupMember -Members "$comp"
}

您在循环中引用了 $comps(对象组)而不是 $comp(对象)。

Import-Module -Name ActiveDirectory
$listofcomputers = Get-Content -Path "$env:HOMEDRIVE\Users\Administrator\Desktop\Complist.txt"

foreach ($computer in $listofcomputers) {
    Get-ADGroup -Filter 'name -like "Group*"' | Remove-ADGroupMember -Members ('{0}' -f $computer)
}

更好的变量命名会有所帮助。