1. In Server Manager, add the user(s) to the following Groups:
    1. Remote Desktop Users
    2. WinRMRemoteWMIUsers__
    3. WSS_ADMIN_WPG
  2.  Run the SharePoint Management Shell as Administrator
  3. Type Enable-PSRemoting -Force
  4. Type Enable-WSManCredSSP –Role Server
  5. Type winrm set winrm/config/winrs '@{MaxShellsPerUser="25"}'
  6. Type winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="600"}'
  7. Type Get-SPShellAdmin
    1. This should only return all the users who have the SharePoint_Shell_Access role
  8. Type Add-SPShellAdmin -UserName Domain\Username -Database (Get-SPContentDatabase -Identity “ContentDatabaseName”)
    1. Replace Domain\Username with the user needing access
    2. Replace ContentDatabaseName with one of the Content Databases
      1. You will need to run this command for all content databases for the user(s) who need access
      2. NOTE-> To grant access to all content databases use the following command:
        Get-SPDatabase | Add-SPShellAdmin DOMAIN\UserName
  9. Type Get-SPShellAdmin
    1. The user you added should now be listed
  10. Type Set-PSSessionConfiguration -Name Microsoft.PowerShell32 –ShowSecurityDescriptorUI
    1. This will open up a dialog box. Add the user(s) with Read and Execute permissions then click OK
    2. Run the command again to ensure the permissions were applied correctly

On the Client Machine:
  1. Open Windows PowerShell as Administrator
  2. Type Enable-WSManCredSSP -Role client -DelegateComputer “SharePointServerName”           
    1. Replace SharePointServerName with the FQDN of the SharePoint server
  3. Type $cred=get-Credential
  4. Type $s=new-PSsession “SharePointServerName” -authentication credssp -credential $cred
    1. Replace SharePointServerName with the FQDN of the SharePoint server
    2. NOTE: If this fails with an "access denied" error, re-run Step 10 on the server to enable configuration of the x64 PowerShell by running Set-PSSessionConfiguration -Name Microsoft.PowerShell32 –ShowSecurityDescriptorUI
  5. Type Invoke-Command -Session $s -ScriptBlock {Add-PSSnapin Microsoft.SharePoint.PowerShell;}
  6. Type Invoke-Command -Session $s -ScriptBlock {get-SPContentDatabase}
    1. This will return all the content databases in your SharePoint farm and ensure you have access
  7. Type Invoke-Command -Session $s -ScriptBlock {get-spserviceinstance}
    1. This will return the SharePoint service instances and ensure you have access
  8. Type Enter-PSSession -session $s

You will now see the servers name in [ ] PS: c:\users\someuser\documents
Example: [sp2013-app.fabrikaminc.local]: PS C:\Users\egutierrez\Documents>
 At this point, the user can implement PowerShell scripts on the SharePoint server.
Note: Special thanks to Mark Kordelski & Samer Judeh for the assistance with this!