You cannot use Try/Catch with ErrorAction SilentlyContinue. If you want to silently handle the errors, use Stop for your ErrorAction, and then use the Continue keyword in your Catch block, which will make it continue the loop with the next input object:
$getPST = Get-ChildItem C:\ -Recurse -File -Filter "*.PST"
$pstSize = @()
Foreach ($pst in $getPST)
{
Try {
If((Get-Acl $pst.FullName -ErrorAction Stop).Owner -like "*$ENV:USERNAME")
{
$pstSum = $pst | Measure-Object -Property Length -Sum
$size = "{0:N2}" -f ($pstSum.Sum / 1Kb)
$pstSize += $size
}
}
Catch {Continue}
}
$totalSize = "{0:N2}" -f (($pstSize | Measure-Object -Sum).Sum / 1Kb)