Wednesday, 31 July 2019

Get all Public Folders and Permissions using Powershell

You can get a list of all public folders with the Exchange powershell cmdlet Get-PublicFolder and you can easily extract the permissions applied to the public folder by using the Get-PublicFolderClientPermission cmdlet.

Before proceed run the below commands to connect Exchange Online (EXO) powershell.
$365Logon = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $365Logon -Authentication Basic -AllowRedirection
Import-PSSession $Session
Run the below command to list all the public folders in your organization.
Get-PublicFolder -Recurse -ResultSize Unlimited
The below command returns the specific folder "Support" and all the sub-folders located under this folder.
Get-PublicFolder -Identity "\Support" -Recurse -ResultSize Unlimited
The below command list only first level sub-folders alone.
Get-PublicFolder -Identity "\Support" -GetChildren -ResultSize Unlimited
Run the below command to list the applied permissions in a public folder.
Get-PublicFolderClientPermission -Identity "\Support" | Select User, AccessRights
The below command returns all the folders and the permissions applied to each folder.
Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select Identity, User, AccessRights

Export all Public Folder Permissions

The below commands fetch all folders and permissions applied to the folders and export the result to CSV file.
$allFolders = Get-PublicFolder -Recurse -ResultSize Unlimited
$totalfolders = $allFolders.Count
$i = 1 
$allFolders | ForEach-Object {
$folder = $_
Write-Progress -activity "Processing $folder" -status "$i out of $totalfolders completed"
$folderPerms = Get-PublicFolderClientPermission -Identity $folder.Identity
$folderPerms | ForEach-Object {
$Result += New-Object PSObject -property @{ 
Folder = $folder.Identity
User = $_.User
Permissions = $_.AccessRights
$Result | Select Folder, User, Permissions |
Export-CSV "C:\\PublicFolderPermissions.CSV" -NoTypeInformation -Encoding UTF8


No comments:

Post a Comment