Búsqueda de sitios web

Obtener y exportar propiedades de perfil de usuario mediante PowerShell en SharePoint Server


¿Necesita exportar propiedades de perfil de usuario desde SharePoint para generar informes u otros fines? Es un requisito común en SharePoint preparar informes a partir de propiedades de perfil de usuario. Aquí están mis scripts de PowerShell para obtener propiedades de perfil de usuario en SharePoint.

Importante: ¡Asegúrese de que la aplicación de servicio de perfiles de usuario esté creada, en funcionamiento y en funcionamiento antes de ejecutar estos scripts! ¡¡Y ejecútese como administrador de la granja!!

Obtener propiedades de perfil de usuario en SharePoint 2013/2016 usando PowerShell

PowerShell es una herramienta versátil que se puede utilizar para automatizar muchas tareas en SharePoint. En esta publicación de blog, obtengamos el valor de la propiedad del perfil de usuario para un usuario determinado:


#Configuration Variables
$SiteURL = "https://mysite.crescent.com"
$UserLogin="Crescent\Salaudeen"

#Get Objects
$ServiceContext  = Get-SPServiceContext -site $SiteURL
$UserProfileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)

#Get the User Profile
$UserProfile = $UserProfileManager.GetUserProfile($UserLogin) 

#Retrieve User Profile Properties
Write-host $UserProfile["PreferredName"]
Write-host $UserProfile["WorkEmail"]

No está limitado a estos campos, pero hay muchos más campos en Perfiles de usuario. Para obtener todas las propiedades de perfil de usuario disponibles, utilice:


$UserProfile.Properties | Select DisplayName, Name

PowerShell para consultar y exportar propiedades de perfil de usuario de todos los usuarios en SharePoint:

Usemos PowerShell para obtener todas las propiedades del perfil de usuario y exportarlas a CSV.


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Variables
$SiteURL = "https://portal.crescent.com"
$outputReport = "c:\user_profiles.csv"

#Get Objects
$ServiceContext  = Get-SPServiceContext -site $SiteURL
$UPM = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)

#Get All User Profiles
$UserProfiles = $UPM.GetEnumerator()
Write-host "Total Number of User Profiles found:"$UserProfiles.Count

#Array to hold Profiles
$ProfileDataCollection = @() 

#Iterate through each profile
foreach ($Profile in $UserProfiles)
{
    $ProfileData = New-Object PSObject 
    #Retrieve User profile Properties  
    $ProfileData | Add-Member -MemberType NoteProperty -name "Account" -value $Profile["AccountName"]
    $ProfileData | Add-Member -MemberType NoteProperty -name "Display Name" -value $Profile["PreferredName"]
    $ProfileData | Add-Member -MemberType NoteProperty -name "E-Mail" -value $Profile["WorkEmail"]
    $ProfileData | Add-Member -MemberType NoteProperty -name "Manager" -value $Profile["Manager"]
    $ProfileData | Add-Member -MemberType NoteProperty -name "Department" -value $Profile["Department"]
   
    #Add to Array
    $ProfileDataCollection+=$ProfileData
    write-host "Processed Profile:"$profile["PreferredName"]
}
#Export User Profile data to CSV
$ProfileDataCollection | Export-Csv $outputReport -NoType

Este script exporta las propiedades de perfil de usuario dadas de todos los usuarios como un archivo CSV:

Si desea exportar propiedades de perfil de usuario desde SharePoint Online, use: SharePoint Online: Exportar propiedades de perfil de usuario a CSV usando PowerShell

Artículos relacionados