Xg)4Sw)BWGkRcm!c
https://www.microsoft.com/en-us/download/confirmation.aspx?id=48689

The Update-PublicFolderPermissions.ps1 script updates the client permissions of a set of public folders (and its children if -recurse is provided) clearing the permissions a set of users have on the folders and setting the provided access rights.

Parameters
IncludeFolders
List of identities of the Public Folders that will be updated

Users
List of users whose current access rights to the folder will be overwritten

AccessRights
List of permissions to assign to the users

Recurse
If provided the permission changes will also be applied to the children of the folders

ExcludeFolderEntryIds
List of EntryIds of the folders that should be ignored from the update. Notice however that if you use the Recurse option the children of these folders won't be ignored unless their EntryIds are also provided in this list.

SkipCurrentAccessCheck
If provided the access rights updates will be performed in the folder regardless of whether the current folder has the same permissions already applied.

Confirm
If this switch parameter is set to $false all operations on the public folder will be performed without requesting confirmation from the user

WhatIf
If this switch parameter is present the operations on the public folder will not be performed but information on what task would be performed are printed to the console

ProgressLogFile
File to log EntryIds of folders that were successfully updated. The content of this file may become handy to save time if the previous execution of the script was aborted and you want to restart from the point the script stopped. To do this simply get the contents of the file (get-content) and provide the data to the ExcludeFolderEntryIds parameter. The default name of this file is UpdatePublicFolderPermission.[yyyyMMdd_HHmm].log where the portion in square brackets gets replaced with the current date and time at the moment of execution of the script.


Examples:
Replace the current client permissions on the "\MyFolder" Public Folder and all its children for users "John" and "Administrator". Grant the users "Owner" access rights and do not request confirmation from the user.

.\Update-PublicFolderPermissions.ps1 -IncludeFolders "\MyFolder" -AccessRights "Owner" -Users "John", "Administrator" -Recurse -Confirm:$false

Assuming the above command was executed on Oct 30th 2014 at 6:20 pm and got interrupted, you could resume from the point where it was suspended by running these commands:

$foldersProcessed = get-content .\UpdatePublicFolderPermission.20141031_1820.log

.\Update-PublicFolderPermissions.ps1 -IncludeFolders "\MyFolder" -AccessRights "Owner" -Users "John", "Administrator" -Recurse -ExcludeFolderEntryIds $foldersProcessed -Confirm:$false
