How To: Active Directory’de içi boş olan organizational unit’leri bulmak

Bumerang - Yazarkafe

Active Directory’de içi boş olan organizational unit’leri bulmak için aşağıdaki script’i kullanabilirsiniz. Büyük AD yapılarında zamanında açılan ancak artık kullanılmayan ve atıl durumda olan OU’larını bulmak ya da için boş olan Organizational Unit’leri bulmak isterseniz aşağıdaki script işinizi görecektir.

 

Get-ADOrganizationalUnit -filter * -Properties Description -PipelineVariable pv |

Select DistinguishedName,Name,Description,

@{Name=“Children”; Expression = {

Get-ADObject -filter * -SearchBase $pv.distinguishedname |

Where { $_.objectclass -ne “organizationalunit”} |

Measure-Object | Select -ExpandProperty Count }} | Where {$_.children -eq 0} |

foreach {

Set-ADOrganizationalUnit -Identity $_.distinguishedname -ProtectedFromAccidentalDeletion $False -PassThru -whatif |

Remove-ADOrganizationalUnit -Recursive -whatif

}

Yukarıdaki script ile içi boş durumda olan organizational unit’lerinizi bulabilir ve eğer isterseniz “-whatif” parametresini kaldırarak aynı zaman da sildirebilirsiniz. Ama önce bir sonucunu görmenizi sonrasında OU’Ları sildirmenizi tavsiye ederim.

Get-ADOrganizationalUnit -filter * -Properties Description -PipelineVariable pv | Select Name,Description,DistinguishedName, @{Name=”Children”; Expression = {Get-ADObject -filter * -SearchBase $pv.distinguishedname | Where { $_.objectclass -ne “organizationalunit”}| Measure-Object | Select -ExpandProperty Count }} | Where {$_.children -eq 0} |  FT -AutoSize | Out-String -Width 4096 |Out-File c:\sources\ou.txt -Encoding unicode

Yukarıdaki script’i sadece çıktı olarak export etmek isterseniz kullanabilirsiniz.