PowerShell Function: Remove-ADPhoto
December 2, 2011
Leave a comment
Since we now have a function to add a photo to a User Account object in Active Directory and one to show the photo, anybody care to guess what the Remove-ADPhoto function does?
If you didn’t answer something along the lines of “removes the photo from the User Account object in Active Directory”, you’re in the wrong place.
##--------------------------------------------------------------------------
## FUNCTION.......: Remove-ADPhoto
## PURPOSE........: Removes the picture stored in an Active Directory
## account.
## REQUIREMENTS...: PowerShell v2.0, Windows Server 2008 or newer Active
## Directory.
## NOTES..........:
##--------------------------------------------------------------------------
Function Remove-ADPhoto {
<#
.SYNOPSIS
Removes the picture stored in an Active Directory account.
.DESCRIPTION
Clears the thumbnailPhoto attribute of the specified user's Active
directory account
.PARAMETER UserName
The User logon name for the account the picture will be removed from.
Alias: -un
.EXAMPLE
C:\PS>Remove-ADPhoto user1
This example will clear the thumbnailPhoto attribute in Active
Directory for the user account with the User logon name of "user1".
.NOTES
NAME......: Remove-ADPhoto
AUTHOR....: Joe Glessner
LAST EDIT.: 29NOV11
CREATED...: 28NOV11
.LINK
http://joeit.wordpress.com/
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory=$True,
#ValueFromPipeline=$True,
#ValueFromPipelineByPropertyName=$True,
Position=0)]
[Alias('un')]
[String]$UserName
)#End: Param
##----------------------------------------------------------------------
## Search AD for the user, set the path to the user account object.
##----------------------------------------------------------------------
$Searcher = New-Object DirectoryServices.DirectorySearcher([ADSI]"")
$Searcher.Filter = "(&(ObjectClass=User)(SAMAccountName= $UserName))"
$FoundUser = $Searcher.findOne()
$P = $FoundUser | Select path
Write-Verbose "Retrieving LDAP path for user $UserName ..."
If ($FoundUser -ne $null) {
Write-Verbose $P.Path
}#END: If ($FoundUser -ne $null)
Else {
Write-Warning "User $UserName not found in this domain!"
Write-Warning "Aborting..."
Break;
}#END: Else
$User = [adsi]$P.path
##----------------------------------------------------------------------
## Attach the picture to the AD account object (remove it if the
## -remove switch is set).
##----------------------------------------------------------------------
Write-Verbose "Removing photo from user account $UserName ..."
$User.Properties["thumbnailPhoto"].Clear()
#$User.Properties["jpegPhoto"].Clear()
$User.CommitChanges()
Write-Verbose "Attribute cleared!"
}#END: Function Remove-ADPhoto
Categories: PowerShell, PowerShell Functions
