This applies to both Remote Desktop and PowerShell Remoting: PowerShell can only find commands it knows about which is controlled mostly by $env:PATH and $env:PSModulePath. Commands must be local to be executable. You can always add remote file locations (shares) to your paths so that powershell can find functions ($env:PATH) and modules ($env:PSModulePath). Your ExecutionPolicy will need to set appropriately to allow these. Cmdlets that are available through snapins MUST installed locally on each server where you want to use them. You'll need a local $profile that can set up your local environment correctly based on your remote file locations (shares).