Stocker et accèder à des attributs utilisateurs dans SharePoint sans utiliser le Service de Profil Utilisateur
La voie royale pour le stockage des attributs utilisateurs dans SharePoint est le Service de Profil Utilisateur (User Profile Service) qui permet de stocker et de manipuler de très nombreux attributs pré-configurés ou ajoutés pour l'occasion. De plus le Service de Synchronisation des profils utilisateurs permet de rapatrier tout un ensemble d'attributs, notamment depuis Active Directory.
Pour certaines installation, il est parfois souhaitable de ne pas utiliser le Service de Profil Utilisateur pour stocker ces données.
Les attributs de base des utilisateurs sont stockés directement dans l'objet User. SharePoint Foundation ne disposant pas du Service de Profil Utilisateur, il utilise un mécanisme de stockage des attributs étendus sous forme d'une liste nommée User Information List.
Lorsque le Service de Profil Utilisateur n'est pas utilisé, les informations concernant les utilisateurs sont stockées par collection de site, il est donc possible de voir des informations complètement différentes d'un site à l'autre (s'ils ne sont pas dans la même collection) et surtout d'une application Web à l'autre.
Voici comment accéder aux attributs de base avec une console PowerShell pour SharePoint.
Récupérer un objet de type site:
$site = Get-SPSite "http://intranet.local/documents"
Récupérer un objet utilisateur:
$user = $web | Get-SPUser -Identity "domaine\cdupont"
Afficher les attributs de l'utilisateurs:
$user.Name
-> Charles Dupont
$user.Email
-> cdupont@compagnie.local
Pour changer un attribut:
$user.DisplayName = "Mr Charles"
$user.Update()
Voici comment accéder aux attributs étendus avec une console PowerShell pour SharePoint.
Récupérer les différents objets:
$site = Get-SPSite "http://intranet.local/documents"
$web = $site.RootWeb
$user = $web | Get-SPUser -Identity "domaine\cdupont"
Pour certaines installation, il est parfois souhaitable de ne pas utiliser le Service de Profil Utilisateur pour stocker ces données.
Les attributs de base des utilisateurs sont stockés directement dans l'objet User. SharePoint Foundation ne disposant pas du Service de Profil Utilisateur, il utilise un mécanisme de stockage des attributs étendus sous forme d'une liste nommée User Information List.
Lorsque le Service de Profil Utilisateur n'est pas utilisé, les informations concernant les utilisateurs sont stockées par collection de site, il est donc possible de voir des informations complètement différentes d'un site à l'autre (s'ils ne sont pas dans la même collection) et surtout d'une application Web à l'autre.
Voici comment accéder aux attributs de base avec une console PowerShell pour SharePoint.
Récupérer un objet de type site:
$site = Get-SPSite "http://intranet.local/documents"
Récupérer le site racine de la collection de site:
$web = $site.RootWeb
Récupérer un objet utilisateur:
$user = $web | Get-SPUser -Identity "domaine\cdupont"
Afficher les attributs de l'utilisateurs:
$user.Name
-> Charles Dupont
$user.Email
-> cdupont@compagnie.local
Pour changer un attribut:
$user.DisplayName = "Mr Charles"
$user.Update()
Voici comment accéder aux attributs étendus avec une console PowerShell pour SharePoint.
Récupérer les différents objets:
$site = Get-SPSite "http://intranet.local/documents"
$web = $site.RootWeb
$user = $web | Get-SPUser -Identity "domaine\cdupont"
Récupérer la liste des attributs étendus:
$list = $web.SiteUserInfoList
Récupérer les attributs de l'utilisateur:
$userItem = $list.GetItemById($user.ID)
Afficher les attributs étendus de l'utilisateurs:
$userItem["Department"]
-> Finances
$userItem["JobTitle"]
-> Comptable
Pour changer un attribut:
$userItem["FirstName"] = "Charles"
$userItem.Update()
Il est dès lors possible d'écrire un script PowerShell pour importer des attributs utilisateurs depuis tous les sources possibles et imaginables...
Commentaires
Enregistrer un commentaire