Skip to content

Instantly share code, notes, and snippets.

@joerodgers
Last active May 23, 2024 21:13
Show Gist options
  • Save joerodgers/c7f124b62c76e82f923ea11606de0590 to your computer and use it in GitHub Desktop.
Save joerodgers/c7f124b62c76e82f923ea11606de0590 to your computer and use it in GitHub Desktop.
#requires -modules "PnP.PowerShell"
# permissions required SharePoint > Application > Sites.FullControl.All
Connect-PnPOnline `
-Url "https://$env:O365_TENANT-admin.sharepoint.com" `
-ClientId $env:O365_CLIENTID `
-Thumbprint $env:O365_THUMBPRINT `
-Tenant $env:O365_TENANT `
-ErrorAction Stop
# config
$applicationId = ""
$displayName = ""
$siteUrl = ""
$permission = "Read" # "Read" "Write", "Manage", "FullControl"
# permission grant
if( $permission -match "Read|Write" )
{
Grant-PnPAzureADAppSitePermission -AppId $applicationId -DisplayName $displayName -Site $siteUrl -Permissions $permission -ErrorAction Stop
}
elseif( $permission -match "Manage|FullControl" )
{
$appPermission = Grant-PnPAzureADAppSitePermission -AppId $applicationId -DisplayName $displayName -Site $siteUrl -Permissions Write -ErrorAction Stop
Set-PnPAzureADAppSitePermission -PermissionId $appPermission.Id -Site $siteUrl -Permissions $permission
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment