Ir al contenido principal

Get SharePoint Online Site and SubSites permission using PowerShell

The below PowerShell script retrieves the following for the given SharePoint Online Site
  • All the Sub-site's URL
  • Security group attached with each Sub-site with their permission level
Prerequisites:

This PowerShell script uses the latest version of SharePoint Online PnP Module. Download the installer from https://github.com/SharePoint/PnP-PowerShell/releases 

Install-Module SharePointPnPPowerShellOnline 

Install-Module -Name 'SharePointPnP.PowerShell.Commands.Files.Recurse'


function connect-site($webs,$creds){ 
 
Connect-PNPonline -Url $webs -Credentials $cred 
 
} 
 
function get-sitepermission($web,$cred){ 
 
$rec=@() 
 
connect-site -webs $web -creds $cred 
 
if($web -eq $parentsitename) 
{ 
#Write-Host "Parent site permission" $web 
$Pgroups=Get-PNPGroup 
foreach($Pgroup in $Pgroups) 
{ 
$DLGP = "" | Select "SiteUrl","GroupName","Permission" 
$pPerm=Get-PNPGroupPermissions -Identity $Pgroup.loginname -ErrorAction SilentlyContinue |Where-Object {$_.Hidden -like "False"if($pPerm -ne $null) 
{ 
$DLGP.SiteUrl=$web 
$DLGP.GroupName=$Pgroup.loginname 
$DLGP.Permission=$pPerm.Name 
$rec+$DLGP 
} 
} 
} 
$subwebs=Get-PNPSubWebs 
foreach($subweb in $subwebs) 
{ 
connect-site -webs $subweb.Url -creds $cred 
#Write-Host $subweb.Url 
$groups=Get-PNPGroup 
foreach($group in $groups) 
{ 
$DLGP = "" | Select "SiteUrl","GroupName","Permission" 
$sPerm=Get-PNPGroupPermissions -Identity $group.loginname -ErrorAction SilentlyContinue |Where-Object {$_.Hidden -like "False"if ($sPerm -ne $null) 
{ 
$DLGP.SiteUrl=$subweb.Url 
$DLGP.GroupName=$group.loginname 
$DLGP.Permission=$sPerm.Name 
$rec+=$DLGP 
} 
} 
Write-Host $subweb.Url "permission fetched!" 
get-sitepermission -web $subweb.Url -cred $cred 
 
} 
return $rec 
} 
#Input parameter 
$cred=Get-Credential 
$parentsitename="https://.sharepoint.com/sites/contoso" 
$outputPath"C:\PnP-master\AllSubsitegrouppermission.csv" 
 
$Sitepermission=get-sitepermission -web $parentsitename -cred $cred 
$Sitepermission |Export-Csv -Path $outputPath

Comentarios

Entradas populares de este blog

Event ID 8031 The uri endpoint information may be stale

An exception occurred while updating addresses for connected app {6783ce5e-c88h-4021-8d5b-12614875cbfa_b79f19ab-1d40-4824-9911-3466cf8b070a}. The uri endpoint information may be stale. System.InvalidOperationException: The requested application could not be found.    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.ProcessCommonExceptions(Uri endpointAddress, String operationName, Exception ex, SPServiceLoadBalancerContext context)    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.ExecuteOnChannel(String operationName, CodeBlock codeBlock)    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.GetEndPoints(Guid serviceId)    at Microsoft.SharePoint.SPConnectedServiceApplicationAddressesRefreshJob.Execute(Guid targetInstanceId) After de-commissioning some SharePoint servers, you might notice the above error on other WFEs /Application server’s event viewer . It appears that the SharePoint still has a reference...

O365 - Forms - Transferir la propiedad de un formulario

Fuente :  https://support.office.com/es-es/article/transferir-la-propiedad-de-un-formulario-921a6361-a4e5-44ea-bce9-c4ed63aa54b4 Si ha creado una encuesta, una prueba o un sondeo, puede moverlos fácilmente a un grupo para que todos los miembros del grupo se conviertan en propietarios de ese formulario. Transferir el formulario a un grupo En el explorador Web, vaya a  Forms.Office.com . En la pestaña  mis formularios  , busque el formulario que desea transferir. Haga clic en  más acciones de formulario    y, a continuación, seleccione  mover . Nota:  Solo puede mover el formulario si es el propietario de ese formulario. No puede transferir la propiedad de un formulario que está compartido con usted. Seleccione el grupo al que desea transferir el formulario y, a continuación, haga clic en  mover . El formulario que ha movido aparecerá en la pestaña  formularios de grupo  . ¿Qué ocurre con el libr...

SharePoint Online: restaurar papelera de reciclaje con PowerShell

  ¿Cómo restaurar desde la papelera de reciclaje en SharePoint Online?  Cuando elimina un documento de la biblioteca de documentos de SharePoint Online, simplemente se mueve a la Papelera de reciclaje de SharePoint, similar a lo que sucede cuando elimina un documento en su computadora local.  Hay dos etapas de papeleras de reciclaje en SharePoint Online.  Cuando se elimina un elemento, va a la Papelera de reciclaje de la primera etapa (o Papelera de reciclaje del usuario final). Cuando elimina un elemento de la Papelera de reciclaje de la primera etapa, se mueve a la Papelera de reciclaje de la segunda etapa, a la que pueden acceder los administradores de la colección de sitios. La vida útil total de los elementos eliminados es de 93 días.  Cuando alcanza el período de retención de 93 días, el elemento se elimina permanentemente de la Papelera de reciclaje (no importa si está en la primera etapa o en la segunda etapa).  Para restaurar elementos de la papele...