Microsoft Download Center Archive

Microsoft Exchange 2013/Online Public Folders Update Client Permissions Script

  • Published:
  • Version: 15.01.0231.006
  • Category: SDK
  • Language: English

Updates client permissions on public folders

  • 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.

Files

Status: Live

This download is still available on microsoft.com. The downloads below will come directly from the Microsoft Download Center.

FileSHA1 HashSize
Update-PublicFolderPermissions.ps16bf68ea92dc2efc0347ac2895f2a8ade6448bf9e9 KB

File sizes and hashes are retrieved from the Wayback Machine’s indexes. They may not match the latest versions of files hosted on Microsoft servers.

System Requirements

Operating Systems: Windows Server 2008 R2, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 SP1, Windows Server 2008 R2 Standard

    • Microsoft PowerShell 2.0 or later.
    • Exchange Server 2013 (or later) or Exchange Online.

Installation Instructions

  • 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