Posts tagged: Leaf

Sletting av AD Child Objekter med PowerShell

By , 25 april, 2012 00:20

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

Post to Twitter Post to Facebook Post to LinkedIn

Panorama Theme by Themocracy