SharePoint Online: Como trabajar con permisos y niveles de permisos con el modelo de objetos en cliente y PowerShell(III)!

Siguiendo con la serie de scripts sobre como trabajar con permisos y niveles de permisos haciendo uso del modelo de objetos en cliente y de PowerShell en SharePoint Online, en esta ocasión vamos a ver como obtener los usuarios de cada Grupo de SharePoint de un sitio. Pero antes os recuerdo los posts previos de la serie.

En este caso, para obtener fácilmente los usuarios por grupo de SharePoint en SharePoint Online he hecho uso de los cmdlets estándar (que están construidos sobre el modelo de objetos en cliente) Get-SPGroup y Get-SPOSite de la siguente forma:

   1: ############################################################################################################################################

   2: # Script that allows to get all the users per SharePoint Group in a SharePoint Online Site

   3: # Required Parameters:

   4: #  -> $sUserName: User Name to connect to the SharePoint Online Site Collection.

   5: #  -> $sPassword: Password for the user.

   6: #  -> $sSiteCollectionUrl: SharePoint Online Site

   7: ############################################################################################################################################

   8: $host.Runspace.ThreadOptions = "ReuseThread"

   9:  

  10: #Definition of the function that gets all the users per SharePoint group in a SharePoint Online site

  11: function Get-SPOSharePointUsersPerGroup

  12: {

  13:     param ($sSPOAdminCenterUrl,$sSiteUrl,$sUserName,$sPassword)

  14:     try

  15:     {    

  16:         Write-Host "--------------------------------------------------------------------------------"  -foregroundcolor Green

  17:         Write-Host "Getting all Users per Group in a SharePoint Online Site" -foregroundcolor Green

  18:         Write-Host "--------------------------------------------------------------------------------"  -foregroundcolor Green     

  19:         $msolcred = Get-Credential -UserName $sUserName -Message $sMessage

  20:         Connect-SPOService -Url $sSPOAdminCenterUrl -Credential $msolcred

  21:         $spoGroups=Get-SPOSiteGroup -Site $sSiteUrl

  22:  

  23:         foreach($spoGroup in $spoGroups){         

  24:            Write-Host "Users in " $spoGroup.Title ":"

  25:            $spoUsers=Get-SPOUser -Site $sSiteUrl -Group $spoGroup.Title

  26:            Write-Host " -> " $spoUsers.LoginName

  27:            Write-Host "---------------------------------------------------" -ForegroundColor Green

  28:         }

  29:     }

  30:     catch [System.Exception]

  31:     {

  32:         write-host -f red $_.Exception.ToString()   

  33:     }    

  34: }

  35:  

  36: #Required Parameters

  37: $sSiteUrl = "https://<SharePointOnline_SiteUrl" 

  38: $sUserName = "<SharePointOnlineUser>" 

  39: $sMessage="<Custom_Prompt_Message>"

  40: $sSPOAdminCenterUrl="https://<SPODomain>-admin.sharepoint.com/"

  41:  

  42: Get-SPOSharePointUsersPerGroup -sSPOAdminCenterUrl $sSPOAdminCenterUrl -sSiteUrl $sSiteUrl -sUserName $sUsername -sPassword $sPassword

Y el resultado es el siguiente:

image

Podéis descargaros el script de la galería de scripts de TechNet: How to get all the users in a SharePoint Group in a SharePoint Online Site