【问题标题】:Powershell script to remove group owners as group members Azure AD将组所有者作为组成员删除的 Powershell 脚本 Azure AD
【发布时间】:2021-03-25 10:07:29
【问题描述】:

我有这个脚本可以让所有组所有者成为 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:\scripts\output.csv" -NoTypeInformation

【问题讨论】:

  • 是的,如果您遇到代码的某些部分,我们绝对可以提供帮助。在这种情况下,请分享minimal reproducible example 并说明问题所在。
  • 我已经编辑了最初的问题。基本上我有那个脚本来获取所有组所有者,然后我想知道如何删除它们?非常感谢您的帮助
  • @Robert Dyjas ,我已经编辑了最初的问题。基本上我有那个脚本来获取所有组所有者,然后我想知道如何删除它们?非常感谢您的帮助——
  • 您好,您检查我的答案了吗?有用吗?

标签: azure-active-directory office365


【解决方案1】:

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

但根据您的描述,您想删除所有群组所有者。

我假设你打错了,你的要求是删除组所有者。

您应该使用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
    }
}

【讨论】:

  • 如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。见meta.stackexchange.com/questions/5234/…。这对其他社区成员可能是有益的。谢谢。
  • 非常感谢!基本上我在 csv 文件中有一些站点,我想删除这些站点的组所有者并在最后有一个输出。我想在所有站点上保留 2 个用户。你能帮忙吗?
  • @PeterSam 你想输出什么结果?我提供了可以保留所有者的脚本。您只需要根据您的需要对其进行修改。请提供更多详细信息。
猜你喜欢
  • 2020-01-29
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 2016-10-26
  • 2019-08-02
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多