Obtenga permisos efectivos para el usuario en SharePoint Online mediante PowerShell
Requisito: Obtener permisos efectivos otorgados a un usuario en un sitio de SharePoint Online mediante PowerShell.
PowerShell para obtener permisos efectivos del usuario en SharePoint Online
A continuación se explica cómo utilizar el método "GetUserEffectivePermissions" para recuperar todos los permisos efectivos que tiene un usuario específico en un sitio de SharePoint determinado.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Parameters
$SiteUrl = "https://salaudeen.sharepoint.com/sites/Retail"
$AdminAccount = "Admin@salaudeen.com"
$UserName = "Steve@salaudeen.com"
Try {
# Connect to SharePoint Online
$password = Read-Host -Prompt "Enter password" -AsSecureString
$credential = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminAccount, $password)
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$ctx.Credentials = $credential
#Get the site
$web = $ctx.Web
$ctx.Load($web)
$ctx.ExecuteQuery()
#get the User
$User=$web.EnsureUser($UserName)
$ctx.Load($User)
$ctx.ExecuteQuery()
# Retrieve the user permissions on the site
$Permissions = $web.GetUserEffectivePermissions($user.LoginName)
$ctx.ExecuteQuery()
#get all base permissions granted to the user
$PermissionKindObj=New-Object Microsoft.SharePoint.Client.PermissionKind
$PermissionKindType=$PermissionKindObj.getType()
ForEach ($PermissionKind in [System.Enum]::GetValues($PermissionKindType))
{
$hasPermisssion = $permissions.Value.Has($PermissionKind)
if ($hasPermisssion)
{
Write-host $permissionKind.ToString()
}
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
Este script obtiene todos los permisos, como "AddListItems", "EditListItems", "DeleteListItems", etc., para el usuario determinado en el sitio determinado.
Podemos usar este método para verificar el permiso del usuario en cualquier objeto de SharePoint, como un sitio, lista o biblioteca, carpeta, elemento de lista o archivo.
