Managing File Permissions in SharePoint with PowerShell

Welcome to our blog post where we share practical PowerShell scripts to enhance your IT management! Today, we will focus on managing file permissions in SharePoint using PowerShell. This script helps administrators efficiently view and configure permissions for files and folders within SharePoint document libraries.
By automating the management of file permissions, you can ensure that sensitive information is only accessible to the right users, enhancing your organizations security and compliance posture. Dont forget to check out our software, ServerEngine, at [https://serverengine.co](https://serverengine.co), for more automation solutions tailored to your needs!
### Step 1: Load SharePoint PowerShell Module
Before you start, ensure that the SharePoint PowerShell module is loaded. This module provides the necessary cmdlets to interact with SharePoint Online.
“`powershell

# Load SharePoint Online module
Import-Module Microsoft.Online.SharePoint.PowerShell -ErrorAction SilentlyContinue
if (-not (Get-Module -Name "Microsoft.Online.SharePoint.PowerShell")) {
    Write-Host "SharePoint Online module not found. Please install it first."
    return
}

“`
### Step 2: Connect to SharePoint Online
Youll need to authenticate and connect to your SharePoint Online site to run any commands. Substitute `yourtenant` and your credentials in the following code.
“`powershell

# Set the credentials and connect to SharePoint Online
$credential = Get-Credential
Connect-SPOService -Url https://yourtenant-admin.sharepoint.com -Credential $credential
Write-Host "Connected to SharePoint Online successfully."

“`
### Step 3: Define the Site and File Path
Next, specify the site and the file/folder for which you want to manage permissions. Update the values as needed.
“`powershell

# Define the SharePoint site and file URL
$siteUrl = "https://yourtenant.sharepoint.com/sites/yoursite"
$fileUrl = "/sites/yoursite/Shared Documents/yourfile.docx"  # Path to your file or folder

“`
### Step 4: Get Current Permissions
Retrieve the current permissions for the specified file or folder. This will allow you to see who has access and what level of access they have.
“`powershell

# Get current permissions of the file
$permissions = Get-PnPListItem -List "Documents" -Identity $fileUrl | Get-PnPProperty -Property RoleAssignments
foreach ($assignment in $permissions) {
    $principal = $assignment.Member.LoginName
    $roles = $assignment.RoleDefinitionBindings | ForEach-Object { $_.Name }
    Write-Host "User: $principal - Roles: $($roles -join , )"
}

“`
### Step 5: Modify Permissions
Now, if you need to add or remove users permissions, you can do this with the following commands. First, specify the user and their new permissions.
“`powershell

# Add a users permissions
$userToAdd = "[email protected]"  # Change to the user who needs access
$roleToAdd = "Edit"  # Role to assign (e.g., Read, Contribute, Edit)
Add-PnPFilePermission -List "Documents" -Identity $fileUrl -User $userToAdd -AddRole $roleToAdd
Write-Host "Added $userToAdd with $roleToAdd access to $fileUrl."

“`
### Step 6: Summary of Changes
Finally, summarize the changes you made, confirming successful updates to the permissions.
“`powershell

# Summary of the changes
Write-Host "Permissions have been updated successfully."
Write-Host "Please verify the permissions to ensure that they are set as intended."

“`
By using this script, you can effectively manage file permissions in SharePoint, enhancing security and access control for your organization. For more advanced automation and IT solutions, be sure to explore [ServerEngine](https://serverengine.co). Happy scripting!