Powershell删除在文本文件中列出的-adgroupmember,其中要删除的组是通配符 &g



我正在寻找一种方法来删除从任何文本文件中列出的AD计算机它们可能在同一个OU内的AD组。例如,文本文件包含:
Computer1$
Computer2$
Computer3$


这三台计算机可能出现在以下组中:
Group1
Group2
Group3

我在2016年的StackOverflow上找到了这个标题"PowerShell - Remove-ADGroupMember - Locking my admin account"。
Get-ADGroup -filter 'name -like "Group*"' | Remove-ADGroupMember -Members "Computer3$">
删除"Computer3$!但当我试图更换"电脑"时;如果我的变量在Foreach中,它就会中断。下面是我的代码:

$Comps = Get-Content "C:UsersAdministratorDesktopComplist.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:UsersAdministratorDesktopComplist.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:HOMEDRIVEUsersAdministratorDesktopComplist.txt"
foreach ($computer in $listofcomputers) {
Get-ADGroup -Filter 'name -like "Group*"' | Remove-ADGroupMember -Members ('{0}' -f $computer)
}

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

最新更新