jueves, 24 de marzo de 2016

Cómo modificar un atributo de UPS para un usuario concreto desde PowerShell

Hoy he estado utilizando este script que me ha sido muy útil para chequear y modificar diversos atributos directamente del User Profile Service, usando una secuencia de comandos PowerShell

Las líneas en rojo las usaríamos únicamente en caso de querer añadir o modificar dicho atributo en el perfil buscado. Si únicamente queréis ejecutar una consulta, eliminad directamente esas líneas.

$mySiteUrl = "https://MySiteHostURL/"
$adAccount = "domain\useraccount"
#Replace the next attribute name with the one you want to search
$upAttribute = "WorkPhone"
#The value you want to add to the profile
$upAttributeValue = “+417648399”

#Get site objects and connect to User Profile Manager service
$site = Get-SPSite $mySiteUrl
$context = Get-SPServiceContext $site
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)

#Check to see if user profile exists
if ($profileManager.UserExists($adAccount))
{
    #Get user profile and change the value
    $up = $profileManager.GetUserProfile($adAccount)
    #Show the current attribute value
    write-host "Current attribute value is: "up[$upAttribute].Value
    #Use the next two lines only if you really want to add/replace the $upAttribute info in the UPS
    $up[$upAttribute].Value = $upAttributeValue   
    $up.Commit()
}
else
{
    write-host "Profile for user"$adAccount "cannot be found"
}

#Dispose of site object
$site.Dispose()

Eso es todo. A veces es mucho mejor para nuestras pruebas o verificaciones tener preparado un pequeño script en PowerShell que no tener que movernos tediosamente por las pantallas de la Administración central (Ir al servicio UPS, ir a la pantalla de búsqueda de perfiles, realizar la búsqueda, abrir el perfil, encontrar la información...).

Deseando que le sea útil a alguien,
¡Un saludo!

No hay comentarios: