将组所有者作为组成员删除的Powershell脚本Azure AD



我有这个脚本可以将所有组所有者作为Azure AD上的成员,现在我想删除他们。你们能帮忙吗?感谢

$groups=Get-AzureADGroup -All $true
$resultsarray =@()
ForEach ($group in $groups){
$members = Get-AzureADGroupMember -ObjectId $group.ObjectId -All $true 
ForEach ($member in $members){
$UserObject = new-object PSObject
$UserObject | add-member  -membertype NoteProperty -name "Group Name" -Value $group.DisplayName
$UserObject | add-member  -membertype NoteProperty -name "Member Name" -Value $member.DisplayName
$UserObject | add-member  -membertype NoteProperty -name "ObjType" -Value $member.ObjectType
$UserObject | add-member  -membertype NoteProperty -name "UserType" -Value $member.UserType
$UserObject | add-member  -membertype NoteProperty -name "UserPrinicpalName" -Value $member.UserPrincipalName
$resultsarray += $UserObject
}
}
$resultsarray | Export-Csv -Encoding UTF8  -Delimiter ";" -Path "C:scriptsoutput.csv" -NoTypeInformation

首先,您的脚本是获取所有组成员,而不是组所有者。

但根据您的描述,您希望删除所有组所有者。

我想你错别字了,你的要求是删除群所有者。

您应该使用Get-AzureADGroupOwner来获取所有者。然后使用Remove-AzureADGroupOwner删除它们。

由于The group must have at least one owner,您无法删除所有所有者。所以你需要有一个主人。

示例(我假设您的所有组都有所有者testUpn@tenant.com。请根据您的实际情况修改此脚本(:

$groups = Get-AzureADGroup -All $true
$keptOwner = Get-AzureADUser -ObjectId "testUpn@tenant.com"
foreach ($group in $groups){
$owners = Get-AzureADGroupOwner -ObjectId $group.ObjectId -All $true 
foreach ($owner in $owners){
if ($keptOwner.ObjectId -ne $owner.ObjectId){
Remove-AzureADGroupOwner -ObjectId $group.ObjectId -OwnerId $owner.ObjectId
}
}
}

如果要删除所有组成员,则没有限制。

示例:

$groups = Get-AzureADGroup -All $true
foreach ($group in $groups){
$members = Get-AzureADGroupMember -ObjectId $group.ObjectId -All $true 
foreach ($member in $members ){
Remove-AzureADGroupMember -ObjectId $group.ObjectId -MemberId $member.ObjectId
}
}

最新更新