This is a very popular question on various forums, but none of them exactly answered the problem for my situation, so I wanted to share my approach.
Scenario
Fix Attempt 1 - Enable local devices (didn't help)
Checked the box on the Remote Desktop Connection options to enable local printer devices.
Fix Attempt 2 - Try fix mentioned in article 302361 (didn't help)
The article mentioned a registry hack, which I tried even though it said that (local) Windows Server 2003 machines were exempt from needing the fix.
Fix Attempt 3 - Install the HP4345 driver on the (remote) Windows Server 2008 (didn't help)
This step made sense to me, because the applications local to the remote server would need to have a local driver to print against. I installed the HP LaserJet 4345 mfp PCL 5 driver, but it didn't help. I left the driver on there.
Fix Attempt 4 - Rename the printer to the exact same name as on the local machine (didn't help)
I found a couple of threads that mentioned this, so I did it. I named the (remote) Windows Server 2008 printer HP the same name as the (local) Windows Server 2003 printer: HP4345MFP.
Fix Attempt 5 - Change the port of the Remote HP4345 printer (Success!)
My last resort was going to be to configure the server to connect back through the Internet to my home network, opening up port 9100 to the world. While researching this, I came across a possible solution. Thinking that the remote desktop session would provide some hooks into my local machine's ports, I opened the Properties window of the remote printer (as Administrator) and started going down the list of interesting ports beginning with TSXXX. Some of these were titled Inactive TS Port and some had "Gemini" in the description. Gemini is the name of my local computer, so I knew I was close. I started checking boxes and doing trial prints, until the LaserJet came to life. For me, TS003 was the winner!
Remember Me
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.