导出所有Azure AD组,包括嵌套组、其成员和所有者(PowerShell)

fd3cxomn  于 2023-02-04  发布在  Shell
关注(0)|答案(2)|浏览(158)

将所有Azure AD组及其成员和所有者导出到一个CSV文件中的PowerShell脚本是什么?
我还需要一个扩展嵌套组。

8qgya5xd

8qgya5xd1#

下面是我想出的一些东西。只要你有AzureAD PowerShell模块,它就应该工作。

function get-recursivegroupmembers {
    param($grouplistname, $currgroup, $groupmemtype)
    $members = if ($groupmemtype -eq "owner") {get-azureadgroupowner -ObjectId $currgroup.ObjectId -All $true} else {get-azureadgroupmember -ObjectId $currgroup.ObjectId -All $true}
    $grouptype = "Distribution Group"
    if ($currgroup.SecurityEnabled -eq $true)
    {
        $grouptype = "Security Group"
    }

    foreach ($member in $members)
    {
        if($member.ObjectType -eq "Group" )
        {
            get-recursivegroupmembers "$grouplistname->$($member.DisplayName)" $member $groupmemtype
        }
        else
        {
            Add-Content -Path $filename -Value "$grouplistname,$grouptype,$groupmemtype,$($member.ObjectId),$($member.ObjectType) $($member.UserType),$($member.UserPrincipalName)"
        }
    }
}

Connect-AzureAD
$filename = ".\groupusers-$(get-date -f 'ddMMyyyy-HHmmss').csv"
$groups = Get-AzureADGroup -All $true
Add-Content -Path $filename -Value "Group(s),Group Type,Member Type,User ObjectId,AAD Object Type,UPN"

ForEach ($group in $groups)
{
    get-recursivegroupmembers $group.DisplayName $group "owner"
    get-recursivegroupmembers $group.DisplayName $group "member"
}

这将在脚本所在的当前文件夹中给予你一个文件,叫做groupusers,第一个字段将包含组,如果它是嵌套组成员,它将显示为group-〉nestedgroup,owner或member,等等。

kb5ga3dv

kb5ga3dv2#

抱歉,我没有足够的代表不能发表评论,我创建了一个帐户,以感谢你彼得。
这是一种享受。我尝试了许多其他文章,但这篇文章是有效的。我所做的一切是针对具有特定命名方案的组,更改这一行并删除$true,因为这表示“无法找到接受参数True的位置参数”

$groups = Get-AzureADGroup -SearchString "File Share"

然后搜索以“File Share”开头的任何组

相关问题