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.
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
