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

Find and Delete Orphaned Users in SharePoint

Fuente: http://www.sharepointdiary.com/2012/09/find-and-delete-orphaned-users-in-sharepoint.html Orphaned User? Who are they? Orphaned users are those who have been disabled/removed from Active Directory, but still have permissions to sites, lists and items. Internally, SharePoint keeps them in " UserInfo " table of the content database for meta-data such as created/modified by fields. Its unavoidable in any organization where employees constantly on-boarding and off-boarding. Its really difficult to manage, when it comes to thousands of sub-sites, sites, libraries and lists with their own sets of permissions. Why we care about Orphaned users? It is a best practice to delete orphaned users to keep the farm clean & organized. Also this will solve the problem of deleted active directory users still appearing on the people picker which was discussed here  People Picker not showing users from Active Directory? . If you know the user base or criteria then you can use: Clea

Conexión desde casa a una VPN sin perder salida a internet

Solución, asumiendo que estas en Windows: Panel de Control, Conexiones de Red. Clic derecho en la VPN, dale a propiedades. Anda a la pestaña de "Funciones de Red" y selecciona Protocolo Internet TCP/IP y clic en el botón "Propiedades". Ahora hazle clic al botón "Opciones Avanzadas..."En la pestaña "General", desmarca la opción que dice "Usar la puerta de enlace predeterminada en la red remota". Dale a aceptar a todas las ventanitas de opción, y ahora conéctate a la VPN nuevamente. Con eso deberías entrar a la VPN sin perder la conexión local de tu red e internet.