mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 18:52:18 +01:00
96 lines
2.8 KiB
PowerShell
96 lines
2.8 KiB
PowerShell
# import AD Module
|
|
Import-Module activedirectory
|
|
#Set-ExecutionPolicy unrestricted
|
|
|
|
#---------------------------
|
|
#-------- Variable ---------
|
|
#---------------------------
|
|
$ADUserMembers=""; $ADUser=""
|
|
$ADGroupName=""; $ADGroupCategory=""; $ADGroupScope=""
|
|
$i=0
|
|
|
|
#---------------------------
|
|
#------- Functions ---------
|
|
#---------------------------
|
|
function Get-ADGroupName ($DN)
|
|
{
|
|
$ADGrpName= (Get-ADGroup -Filter {DistinguishedName -eq $DN}).SamAccountName
|
|
return $ADGrpName
|
|
}
|
|
|
|
|
|
function Get-GroupMemberOf ($ADGroupName)
|
|
{
|
|
if ($ADGroupName -eq "# Developer") {
|
|
break
|
|
}
|
|
$ii++; $a=0
|
|
$Message=""; $Prefix=""
|
|
$GroupCategory=""; $GroupScope=""; $GroupName=""
|
|
|
|
For ($a=0; $a -lt $ii; $a++) {$Prefix = $Prefix + " "}
|
|
|
|
$DNs=(Get-ADGroup $ADGroupName -Properties *).MemberOf
|
|
if ($DNs.count -ne 0)
|
|
{
|
|
foreach ($DN in $DNs)
|
|
{
|
|
# $Prefix =" $ADGroupName => "
|
|
$GroupName = (Get-ADGroupName $DN)
|
|
$GroupCategory = (Get-ADGroup $GroupName -Properties *).GroupCategory
|
|
$GroupScope = (Get-ADGroup $GroupName -Properties *).GroupScope
|
|
|
|
$Message="$Prefix $ADGroupName => $GroupName [$GroupCategory - $GroupScope]"
|
|
Write-Host $Message
|
|
|
|
Get-GroupMemberOf $GroupName ' '
|
|
}# End ForEach
|
|
}# End IF
|
|
}#End Function
|
|
|
|
function Get-UserMemberships ($ADUser)
|
|
{
|
|
|
|
$ADUserMembers=(Get-ADUser $ADUser -Properties *).MemberOf
|
|
|
|
Write-Host "AD-User: $ADUser" -ForegroundColor blue
|
|
#PrimaryGroup
|
|
$ADPrimaryGroupDN = (Get-ADUser -Properties * -Filter {SamAccountName -eq $ADUser}).PrimaryGroup
|
|
$ADPrimaryGroupName=(Get-ADGroupName $ADPrimaryGroupDN)
|
|
$ADGroupCategory=(Get-ADGroup $ADPrimaryGroupName).GroupCategory
|
|
$ADGroupScope=(Get-ADGroup $ADPrimaryGroupName).GroupScope
|
|
$Message = "Primary Group: $ADPrimaryGroupName [$ADGroupCategory, $ADGroupScope]"
|
|
Write-Host $Message -BackgroundColor yellow
|
|
|
|
#Other groups
|
|
foreach ($ADUserMember in $ADUserMembers)
|
|
{$i++
|
|
$ADGroupName = (Get-ADGroupName $ADUserMember)
|
|
$ADGroupCategory=(Get-ADGroup $ADGroupName).GroupCategory
|
|
$ADGroupScope=(Get-ADGroup $ADGroupName).GroupScope
|
|
$Message = "($i) $ADGroupName [$ADGroupCategory, $ADGroupScope]"
|
|
Write-Host $Message -ForegroundColor black
|
|
Get-GroupMemberOf $ADGroupName ' '
|
|
Write-Host " "
|
|
}
|
|
}
|
|
|
|
function Get-AllMembershipsOfUsers($ADGroupName) {
|
|
|
|
$devadmaccounts = get-adgroupmember -Identity $ADGroupName -Recursive
|
|
foreach ($devADM in $devadmaccounts) {
|
|
Get-UserMemberships $devADM.name
|
|
Write-Host "======================================================================================================"
|
|
}
|
|
|
|
}
|
|
|
|
|
|
#-----------------------------------------------------------------
|
|
Clear-Host
|
|
|
|
$ADUser= "DannyADM"
|
|
Get-UserMemberships $ADUser
|
|
|
|
#$ADGroupName = "# Developer ADM"
|
|
#Get-AllMembershipsOfUsers $ADGroupName |