Hola,
En algunas ocasiones necesitamos tener un reporte de la información de los perfiles de usuario para contrastarlo con algún sistema de RRHH u otro sistema interno. Esta información es crítica para los gestores o administradores de Intranets/Portales ya que pueden validar que tanta "data" se tiene de los colaboradores y como podrían explotarla para sus intereses.
El script de powershell propuesto es el siguiente:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$siteUrl = "http://server/my"
$outputFile = "X:\files\ReporteUsuariosIntranet.csv"
$serviceContext = Get-SPServiceContext -Site $siteUrl
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext);
$profiles = $profileManager.GetEnumerator()
$collection = @()
foreach ($profile in $profiles) {
$profileData = "" |
select "AccountName", "PreferredName" , "Department" , "Manager" , "Office" , "Location" , "WorkEmail" , "Assistant" , "AboutMe" , "Role" , "CodTrabajador"
$profileData.AccountName = $profile["AccountName"]
$profileData.PreferredName = $profile["PreferredName"]
$profileData.Manager = $profile["Manager"]
$profileData.Department = $profile["Department"]
$profileData.Office = $profile["Office"]
$profileData.Location = $profile["Location"]
$profileData.WorkEmail = $profile["WorkEmail"]
$profileData.Assistant = $profile["Assistant"]
$profileData.AboutMe = $profile["AboutMe"].Value
$profileData.Role = $profile["Role"]
$profileData.CodTrabajador = $profile["CodTrabajador"]
$collection += $profileData
}
$collection | Export-Csv $outputFile -NoTypeInformation
Como resultado tenemos un archivo en formato .csv que podemos abrir en Microsoft Excel.
Nota: Como la información de perfiles de usuario SharePoint lo importa del Directorio Activo (AD) es crucial que las áreas de TI generen procedimientos para mantenerlo actualizado.
Saludos,
Edgard.
0 comentarios:
Publicar un comentario