<# .SYNOPSIS Copies all mailbox folder permissions from one recipient to aother recipient on the specified mailbox .DESCRIPTION Copies all mailbox folder permissions from one recipient to aother recipient on the specified mailbox .PARAMETER Mailbox The Mailbox parameter specifies the identity mailbox to be inspected this parameter accepts the following values: * Example: JPhilips * Example: contoso.com/Users/JPhilips * Example: Jeff Philips * Example: CN=JPhilips,CN=Users,DC=contoso,DC=com * Example: US\JPhilips * Example: fb456636-fe7d-4d58-9d15-5af57d0354c2 * Example: fb456636-fe7d-4d58-9d15-5af57d0354c2@contoso.com * Example: /o=email/ou=AdministrativeGroup/cn=Recipients/cn=JPhilips * Example: Jeff.Philips@contoso.com * Example: JPhilips@constoso.com .PARAMETER FromRecipient The recipient whose permissions are to be copied * Example: JPhilips * Example: contoso.com/Users/JPhilips * Example: Jeff Philips * Example: CN=JPhilips,CN=Users,DC=contoso,DC=com * Example: US\JPhilips * Example: /o=email/ou=AdministrativeGroup/cn=Recipients/cn=JPhilips * Example: Jeff.Philips@contoso.com * Example: JPhilips@constoso.com .PARAMETER ToRecipient The recipient who will get the new permissions * Example: JPhilips * Example: contoso.com/Users/JPhilips * Example: Jeff Philips * Example: CN=JPhilips,CN=Users,DC=contoso,DC=com * Example: US\JPhilips * Example: /o=email/ou=AdministrativeGroup/cn=Recipients/cn=JPhilips * Example: Jeff.Philips@contoso.com * Example: JPhilips@constoso.com .EXAMPLE Copy-MailboxFolderPermission -Mailbox UK\user123 -FromRecipient RecipientA@contoso.com -ToRecipient RecipientB@contoso.com Description ----------- Copies all mailbox folder permissions from RecipientA@contoso.com to RecipientB@contoso.com on the mailbox UK\user123 .NOTES Author: Twan van Beers, Nero Blanco IT Ltd #> Param( [Parameter(Position=0,Mandatory=$true)] [string]$Mailbox = $null, [Parameter(Position=1,Mandatory=$true)] [string]$FromRecipient = $null, [Parameter(Position=2,Mandatory=$true)] [string]$ToRecipient = $null ) if( !$Mailbox -or (@(Get-Mailbox $Mailbox -ErrorAction Silentlycontinue).count -ne 1)) { Write-Host ("Mailbox '{0}' not found or ambiguous" -f $Mailbox) -ForegroundColor Red return } if( !$FromRecipient -or (@(Get-Recipient $FromRecipient -ErrorAction Silentlycontinue).count -ne 1)) { Write-Host ("From Recipient '{0}' not found or ambiguous" -f $FromRecipient) -ForegroundColor Red return } if( !$ToRecipient -or (@(Get-Recipient $ToRecipient -ErrorAction Silentlycontinue).count -ne 1)) { Write-Host ("To Recipient '{0}' not found or ambiguous" -f $ToRecipient) -ForegroundColor Red return } $GrantedFolderCount = 0 $FolderCount = 0 $folderstats = Get-MailboxFolderStatistics $mailbox foreach( $folder in $folderstats ) { $FolderCount++ $path = ("{0}:{1}" -f $Mailbox, $folder.FolderPath -replace '/', '\') # for the root we don't want the \Top of Information Store in full just \ if( $FolderType -eq 'Root' ) { $path = '\' } Write-Host ( "Processing '{0}' folder number {1} out of {2}" -f $path, $FolderCount, $folderstats.count ) $permission = Get-MailboxFolderPermission $path -user $FromRecipient -ErrorAction SilentlyContinue if( $permission ) { $GrantedFolderCount++ Write-Host ( "Granting rights to '{0}'" -f $path ) Remove-MailboxFolderPermission $path -user $ToRecipient -Confirm:$False -ErrorAction SilentlyContinue Add-MailboxFolderPermission $path -user $ToRecipient -AccessRights $permission.AccessRights } } Write-Host ( "Granted access to {0} folders" -f $GrantedFolderCount )