This script has problems with public folder name that contain space even when enclosed in "" as in the example so that
AddUsersToPFRecursive.ps1 -TopPublicFolder "\Sales Receipts" -User "David" -Permission Reviewer
Gives the error
Get-PublicFolder : A parameter cannot be found that matches parameter name 'Receipts'.
At line:1 char:17
+ get-publicfolder <<<< -identity \Sales Receipts -Recurse -resultsize unlimited
The only solution was to simplify the name to \Sales make the change then return the name to \Sales Receipts