Le script suivant recrache toutes les propriétés de UserProfile pour les utilisateurs sur Sharepoint 2007:Accès aux Sharepoint Propriétés UserProfile avec le script Powershell
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.UserProfiles")
# Function: Get-UserProfiles
# Description: return a UserProfileManager object containing all user profiles
# Parameters: SSPName SSPName
#
Function global:Get-UserProfiles($SSPName)
{
$ServerContext = [Microsoft.Office.Server.ServerContext]::GetContext($SSPName);
$UPManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServerContext);
return $UPManager.GetEnumerator();
}
$profiles = Get-UserProfiles("SharedServices");
$profiles | ForEach-Object { $_.GetEnumerator();}
Cependant, ce que je veux faire est d'être en mesure de retourner une table ou un fichier csv de valeurs spécifiques dans le profil, par exemple Nom d'utilisateur, WorkEmail, WorkPhone. J'ai essayé d'acheminer la sortie vers |ft Username, WorkEmail, Workphone
et | select Username, WorkEmail, WorkPhone
mais cela renvoie simplement des espaces vides. Je me sens comme si je suis si proche. Je ne veux pas remplacer l'appel $_.GetEnumerator()
avec beaucoup d'appels $_.Item("property")
et il ne se sent pas comme je devrais le faire. Des idées?
Un vote négatif? Sans explication? La question est claire et fournit même quelques informations utiles. Pourquoi downvote-t-il? Y at-il quelque chose qui ne va pas avec la question? – dunxd
+1 pour annuler la redirection – Ryan
Ajoute la sortie (avant de tenter Fort-Table ou Select) à Get-Member et vérifie si vous obtenez des objets avec les propriétés que vous attendez, par exemple. 'Profils $ | get-member' et '$ profils | % {$ _. GetEnumerator()} | get-member'. –