Búsqueda de sitios web

Obtenga el departamento de usuario y el puesto de trabajo de la lista de información del usuario de SharePoint mediante PowerShell


Requisito: A partir de un requisito comercial, necesitamos generar un informe para los usuarios departamentales de un sitio de portal de Intranet. Diga: ¿Cuántos usuarios del departamento de “Ventas” tienen acceso al portal de Intranet de SharePoint?

Solución: Consulte el almacén de perfiles de usuario o la lista de información del usuario para obtener las propiedades del perfil de usuario, como Departamento, Puesto, etc.

PowerShell para consultar la lista de información del usuario en SharePoint

A continuación se explica cómo obtener datos de la lista de información del usuario en SharePoint usando PowerShell:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters  
$WebURL="https://portal.crescent.com"
$ReportLocation = "C:\UserAnalysisRpt.csv"

#Get the Web
$Web = Get-SPWeb $WebURL

#Get User information list
$UserInfoList = $Web.SiteUserInfoList

 #Get all Groups of the web and Iterate through    
 Foreach ($Group in $Web.Groups) 
 {
    #Get Permission Levels Applied to the Group   
    $RoleAssignment = $Web.RoleAssignments.GetAssignmentByPrincipal($Group)
 
    $RoleDefinitionNames=[string]::Empty
    foreach ($RoleDefinition in $RoleAssignment.RoleDefinitionBindings)
    {  
        $RoleDefinitionNames+=$RoleDefinition.Name+";"
    }
    #Array to Hold Result - PSObjects
    $ResultCollection = @()

    "Group Name: $($Group.name) : Permissions: $($RoleDefinitionNames)" >> $ReportLocation
    #Iterate through Each User in the group
        foreach ($User in $Group.users) 
        {
            #Get the User details from UIL
            $UserInfo = $UserInfoList.GetItemById($User.ID)            
            $Department = $UserInfo['Department']
            $JobTitle = $UserInfo["JobTitle"] 
            
            #Send the output the report file
            $User.name + "`t" + $user.Email + "`t" + $Department + "`t" + $JobTitle >> $ReportLocation
        }    
 } 
 Write-host "User analysis data has been Exported to $ReportLocation"

Si desea consultar las propiedades del perfil de usuario desde el almacén de perfiles, use mi otra publicación: Consultar propiedades del perfil de usuario usando PowerShell en SharePoint 2013

Artículos relacionados