Vues :

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 ";"