Verify all AD groups added to a domain user
Most important task when you join a new organization or when you start working for a new client is to gain access to all required AD groups. I had to switch several times and this was a pain point. My manager would share a list of AD groups and ask me to check if my account is added to all those groups across all domains. Hence being lazy, I had to make use of below simple script to fetch and compare lists quickly at each domain.
##*------------------------------------------------------------------------------------------------------------------------------------------ # Filename : groups.ps1 # Purpose : Verify if all AD groups are added for a domain user account # Schedule : NONE # Date : 05-March-2018 # Author : www.sherbaz.com/Sherbaz Mohamed # Version : 1 # OS : Windows Server 2012 # # Important --arks: # INPUT : Username, File path (for AD groups) # VARIABLE : NONE # PARENT : NONE # CHILD : NONE # NOTE : Arguments are mandatory. The input text file for argument 2 should contain the list of AD groups. #--------------------------------------------------------------------------------------------------------------------------------------------- # Usage: # .\groups.ps1 -username sherbaz -groupsfile .\groups.txt # ##*-------------------------------------------------------------------------------------------------------------------------------------------*/ Param( [Parameter(Mandatory=$True,Position=1)] [string]$username, [Parameter(Mandatory=$True)] [string]$groupsfile ) $memberships = dsquery user -name $username | dsget user -memberof "Below groups were missing" foreach($group in Get-Content $groupsfile) { $found = $memberships | where {$_ -Match "$group"} if($found -eq $null) {"Not Found: $group"} }
Store the script in a file and name it for example “groups.ps1”. Copy-paste all AD group names required for your job role into a separate text file named groups.txt in the same folder. Open a powershell prompt, Navigate into the directory and execute below command.
.\groups.ps1 -username sherbaz -groupsfile .\groups.txt
You could further customize the script based on your requirement.