The below script will search Active Directory for all Organizational Unit which contain specific name and list them along with all Group Policies linked to those OUs. Example: The below command will get a list of all OUs which name contains ‘Test’. It will also show the details of all GPOs linked to OUs.
Usage Example:
.\Get-OUList.ps1 –OUName “Test”
#Script
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[string]$OUName
)
$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$outputfile = $directorypath + "\Result.csv"
$OUName = "*" + $OUName + "*"
$Results = @()
$OUList=Get-ADOrganizationalUnit -Filter * | Where-Object -FilterScript {$PSItem.distinguishedname -like $OUName}
foreach($OU in $OUList){
$LinkedGPOs = Get-ADOrganizationalUnit -Identity $OU | select -ExpandProperty LinkedGroupPolicyObjects
foreach($LinkedGPO in $LinkedGPOs) {
$GPO = [adsi]"LDAP://$LinkedGPO" | select *
$properties = @{
OUName=$OU.DistinguishedName
GPOName=$GPO.displayName.Value
GPOGUID=$GPO.Guid
GPOWhenCreated=$gpo.whenChanged.Value
GPOWhenChanged = $gpo.whenChanged.Value
}
$Results += New-Object psobject -Property $properties
}
}
$Results | Select-Object OUName,GPOName,GPOGUID,GPOWhenCreated,GPOWhenChanged | Export-Csv -notypeinformation -Path $outputfile
Related Posts:
- Powershell – Get System up time
- Powershell Script : List AD Organizational Unit and GPOs linked to them
- Powershell – Compare hardware and software details on two computers
- Powershell Script : Retrieve AD Computers Properties
- Powershell – Merge CSV files & Insert file name as a column
- Powershell Script: Validate if Computer account exists in Active Directory
Subscribe to Techuisitive Newsletter
Be the first to know about our new blog posts, Get our newsletter directly in your inbox and stay up to date about Modern Desktop Management technologies and news.