#--------------------------------------------------------------------------------------------------# Set-Variable -name accountDomain -option Constant -value "ASIA" Set-Variable -name accountsAMAccountName -option Constant -value "DesktopTeam" Set-Variable -name workingDomain -option Constant -value "asia.ad.mycompany.local" Set-Variable -name matchFilter -option Constant -value "Workstation" Set-Variable -name outputFile -option Constant -value ($workingDomain + "-" + $matchFilter + ".csv") #--------------------------------------------------------------------------------------------------# if((Get-Host).Version.Major -ne 2) { Write-Host "You must have PowerShell V2 installed to use this script. Exiting!" -foregroundColor Red exit } if(!(Get-Module -ListAvailable | Where-Object { $_.Name -eq "GroupPolicy" }).Name) { Write-host "Unable to locate the GroupPolicy module. Exiting!" -foregroundColor Red exit } Import-Module -Name GroupPolicy $badGpos = @() $gpoList = Get-GPO -All -Domain $workingDomain | Where-Object { $_.DisplayName -match $matchFilter } foreach($gpo in $gpoList) { $gpoPermissions = Get-GPPermissions -guid $gpo.Id -Domain $workingDomain -All $found = $false foreach($gpoPermission in $gpoPermissions) { if($gpoPermission.Trustee.Domain -eq $domain -and $gpoPermission.Trustee.Name -eq $sAMAccountName) { $found = $true } } if($found -eq $false) { $badGpos += $gpo } } $badGpos | Export-Csv -path $outputFile -noTypeInformation Remove-Module -Name GroupPolicy
Monday, April 11, 2011
Audit Group Policy Objects
I needed to review a group of Group Policy Objects and determine if an Active Directory group is listed in the permissions for the GPO. If it was not, I needed to be aware of it. In the code sample, I take advantage of the Group Policy module to loop through all the GPOs in a domain that have "Workstation" in the display name, identify the ones that do not include the "ASIA\DesktopTeam" in the permission list and output them to a comma separated values text file.
Labels:
Active Directory,
Group Policy Objects,
PowerShell
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment