我想從組中洗掉所有用戶。我的問題是我的 GroupNames 包含'@'所以它失敗了......任何幫助將不勝感激。謝謝
$groupNames = @"
Groups;
@Test-Group-FIN #fail
@Test-Group-HR #fail
SupportGAP #it works for this group
"@ | Convertfrom-csv -Delimiter ";"
#Remove members
foreach ($ADGroup in $groupNames) {
Get-ADGroupMember -Identity $ADGroup.Groups.Trim() | ForEach-Object {Remove-ADGroupMember $ADGroup.Groups.Trim() $_ -Confirm:$False }
}
uj5u.com熱心網友回復:
請嘗試使用以下方法洗掉組成員
$groups = @('@Test-Group-FIN','@Test-Group-HR','SupportGAP')
foreach ($group in $groups){
Get-ADGroup $group | Set-ADGroup -Clear member
}
請注意,我們在這里使用的member不是ldap 屬性members
uj5u.com熱心網友回復:
我個人不知道 AD 組可以@在其名稱屬性中具有。您可以嘗試一下,看看它是否符合您的預期,如果是,您可以移除-WhatIf開關。我還為組成員添加了一個過濾器,ObjectClass = user因此它不會洗掉其他 AD 物件。
我的建議是重命名這些@以他們的名字命名的組,假設這是可能的并且不是來自 Csv 的錯誤資料。
如果下面的代碼沒有找到@名稱中帶有 的那些組,您可以嘗試將 替換為@并*在這些組上執行通配符搜索,但是它可能會找到比預期更多的組。
foreach($group in $groupNames.Groups)
{
# Uncomment below line and remove the line below it if it
# does not find those groups
# $filter = "(name=$($group.Replace('@','*')))"
$filter = "(name=$group)"
$adGroup = Get-ADGroup -LDAPFilter $filter
if(-not $adGroup) {
Write-Warning "$group could not be found..."
continue
}
$members = Get-ADGroupMember $adGroup | Where-Object ObjectClass -EQ user
Remove-ADGroupMember -Identity $adGroup -Members $members -WhatIf
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414554.html
標籤:
