将所有 Azure AD 组、其成员和所有者导出到一个 CSV 文件中的 PowerShell 脚本是什么?
我还需要一个扩展的嵌套组。
将所有 Azure AD 组、其成员和所有者导出到一个 CSV 文件中的 PowerShell 脚本是什么?
我还需要一个扩展的嵌套组。
这是我想出的东西。只要您拥有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、所有者或成员等。