I came across this one today. Take the following example:

Enter-PSSession -ComputerName servername -Authentication Credssp -Credential domain\username
Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SPWeb = Get-SPweb http://portal
$SPWeb.Lists

When you run the $SPWeb.Lists you will probably get an access denied. it’s a little strange since the account I was running with was not only a farm admin but also had full control to the web app via the user policy.

Turns out that you need to grant the identity you are using access to the content DBs.

$w = Get-SPWebApplication -Identity http://portal
$w.GrantAccessToProcessIdentity("domain\username")

Now rerun the commands and it should work.