Prérequis
Il est nécessaire d'installer le composant SharePoint Online Client Components SDK.
Objectif
Les propriétés du profil utilisateur sont définies dans la page https://[TENANTNAME]-admin.sharepoint.com/_layouts/15/tenantprofileadmin/MgrProperty.aspx
Lorsque vous éditez une propriété, le champ "Name" sera celui utilisé dans le script. Par exemple, si vous voulez exporter toutes les photos des utilisateurs, vous devez utiliser la propriété "PictureURL".
Vous pouvez ajouter des propriétés personnalisées, qui seront accessibles ou non par l'utilisateur depuis Delve.
Script
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Publishing.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.UserProfiles.dll"
$User = 'adm@contoso.com'
$csvFullPathName = 'C:\Users.csv'
$Password = Read-Host -Prompt "Please enter your password" -AsSecureString
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
#Bind to Site Collection
$Context = New-Object Microsoft.SharePoint.Client.ClientContext('https://contoso.sharepoint.com/sites/portal')
$Context.Credentials = $Creds
#Identify users in the Site Collection
$Users = $Context.Web.SiteUsers
$Context.Load($Users)
$Context.ExecuteQuery()
$peopleManager = New-Object Microsoft.SharePoint.Client.UserProfiles.PeopleManager($Context)
$results = @()
Foreach ($User in $Users)
{
$UserProfile = $peopleManager.GetPropertiesFor($User.LoginName)
$Context.Load($UserProfile)
$Context.ExecuteQuery()
If ($UserProfile.Email -ne $null)
{
$details = @{
Title = $User.Title
Email = $User.Email
PictureURL = $UserProfile.UserProfileProperties.PictureURL
Department = $UserProfile.UserProfileProperties.Department
}
$results += New-Object PSObject -Property $details
}
}
$results | export-csv -Path $csvFullPathName -NoTypeInformation -Delimiter ";"