Sletting av AD Child Objekter med PowerShell
I blant er det behov for å slette «Child Objects» tilhørende brukerobjekter i Active Directory. Typisk vil dette være nødvendig hvis man skal migrere brukerobjekter med Active Directory Migration Tool mellom domener eller forrest. Hvis brukerobjektet har «Child Objekts» vil ikke brukerobjektet kunne migreres.
«Child Objects» opprettes for eksempel for mobile enheter som synkroniseres mot Exchange 2010. Den mobile enheten får opprettet sin enhets-ID i klassen msExchangeActiveSyndDevice under «Child» objektet CN=ExchangeActiveSyndDevices.
Sletting av «child» objekter kan manuelt utføres gjennom ADSIEdit, men hvis behov for sletting av denne type objekter fra flere brukerobjekter samtidig, vil bruk av script være mest hensiktsmessig.
Det er stilt mange spørsmål i forskjellige fora om hvordan sletting av «Child» objekter kan utføres med PowerShell, men det er ikke mange gode svar. Jeg har derfor valgt å vise hvordan jeg sletter «child» objekter med PowerShell. Første eksempel viser bruk av Microsofts Active Directory module og eksempel to gir samme resultat men benytter PowerShell snapin Quest Active Roles Management.
Sletting av «child» objekter med Microsoft Active Directory module:
# Microsoft Active Directory Module function Del-LeafObject { <# .SYNOPSIS Del-LeafObject .DESCRIPTION Removes Child object from userobjects .NOTES AUTHOR: Lars Jostein Silihagen #> param ( [string]$ADUser ) $LeafObject = Get-ADObject -Filter * -SearchScope oneLevel -SearchBase $ADUser.DistinguishedName if($LeafObject) { Write-Host "Removes Child Objects for user " $ADUser -ForegroundColor Yellow $LeafObject | Remove-ADObject -Recursive } else { write-host "Can't find any child objects for user: " $UserName } } # end Del-LeafObject
Sletting av «child» objekter med Quest:
# Quest function Del-LeafObject { <# .SYNOPSIS Del-LeafObject .DESCRIPTION Removes Child object from userobjects .NOTES AUTHOR: Lars Jostein Silihagen #> param ( [string]$ADUser ) $LeafObject = Get-QADObject -SearchScope onelevel -SearchRoot $ADuser if($LeafObject) { Write-Host "Removes Child Objects for user" $ADUser -ForegroundColor Yellow Remove-QADObject -Identity $LeafObject -deletetree -force } else { write-host "Can't find any child objects for user: " $UserName } } # end Del-LeafObject
Scriptene kan lastes ned fra MS TechNet Gallery: http://gallery.technet.microsoft.com/Deletion-of-Active-9c0dedd6