tools/Get-AdSecurityGroupInfo.ps1
function Get-ADSecurityGroupsInfo { $groups = Get-ADGroup -Filter * -Properties Description, GroupCategory, DistinguishedName, MemberOf $output = @() foreach ($group in $Groups) { $groupInfo = @{ "Name" = $group.Name "Path" = $group.DistinguishedName "Description" = $group.Description "GroupType" = if ($group.GroupCategory -eq "Security") { "security" } else { "distribution" } "GroupScope" = $group.GroupScope "MemberOf" = @() } # Get groups that the current group is a member of foreach ($parentGroup in $group.MemberOf) { $parentGroupName = (Get-ADGroup -Identity $parentGroup).Name $groupInfo.MemberOf += $parentGroupName } $output += $groupInfo } $output | ConvertTo-Json -Depth 3 } # Run the function Get-ADSecurityGroupsInfo | Out-File "ADGroups.json" |