【问题标题】:Export all Azure AD groups, including nested groups, their members and owners (PowerShell)导出所有 Azure AD 组,包括嵌套组、其成员和所有者 (PowerShell)
【发布时间】:2020-05-15 00:32:51
【问题描述】:

将所有 Azure AD 组、其成员和所有者导出到一个 CSV 文件中的 PowerShell 脚本是什么?

我还需要一个扩展的嵌套组。

【问题讨论】:

标签: powershell azure-active-directory azure-ad-powershell-v2


【解决方案1】:

这是我想出来的。只要您有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、所有者或成员等。

【讨论】:

  • 太棒了@alphaz!我试图用 SecurityEnabled 和变量来修改脚本,但没有运气:( ...
  • ``` param($grouplistname, $currgroupid, $groupmemtype, $grouptype) $grouptype = if($grouptype.SecurityEnabled -eq $true) {"安全组"} else {"分布组"} `` and ``` { add-content -Path $filename -Value "$grouplistname,$groupmemtype,$grouptype,$($member.ObjectId),$($member.ObjectType) $($member.UserType ),$($member.UserPrincipalName)" } } $filename = ".\AADGroupsMembersOwners_$(get-date -f dd-MM-yyyy HH:mm:ss).csv" ```
  • 我稍微修改了脚本,现在里面有你的修改
猜你喜欢
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多