This is more a desktop support/troubleshooting story, but I figured it was a difficult enough one for it to be worth describing. Every so often one of those problems come along where it doesn’t really make much sense why things don’t work as they should, where it seems like there must be some corruption with the system itself.
First, some backstory. This issue came about because of a project to move from an old Server 2003 print server to one running Server 2012 R2. Everything went well for the most part, clients were moved over, everything was great, except for one user.. Typically with an issue like this the call would be to simply re-image and be done with it, however this user was one with a complicated system setup, that couldn’t spend the time getting back up to speed with a new computer.
The issue the user was experiencing, was a complete inability to print using the new server. I unfortunately don’t have a screenshot of the error, but any time the user went to print, it would immediately fail and display a warning. Here’s some initial tests, troubleshooting, and observations:
- Removing and re-adding the printer (I wouldn’t be writing this if it had worked!)
- If a different user signed in, they could print fine
- The the drivers on the printers that worked were all Type 3, whereas the drivers on printers that didn’t work were Type 4
- Deleting the drivers from Print Management
- Deleting the drivers from C:\windows\system32\spool\drivers
- Doing a full reset using this script: https://printreset.codeplex.com/
From this I figured a couple things:
- It’s quite unlike to be an issue with the printer, since it’s working on ever other computer, and even other users on the same system
- Since it’s working for other users on the same computer, it’s quite likely to be an issue with the user’s profile
Pulling Out the Big Guns
Usually at this point I would simply recreate the user’s profile, but unfortunately it can’t be done for the same reason the computer couldn’t just be re-imaged in the first place. Instead, it’s back to troubleshooting, but with a new focus. The first thing to try was giving the user Administrator access. Lo and behold this worked! The user was able to print. So there must be a permission the user needs that they don’t have for whatever reason.
Troubleshooting permission issues like that can be pretty difficult if just using guesswork, so I pulled out Process Monitor to help out. Process Monitor is a pretty powerful tool, but I often find it’s usefulness to be a bit suspect, there’s just so much going on it can be time-consuming and tedious to find something meaningful with the sheer amount of output. However, I figured it was worth a shot. I fired it up, and did a very quick capture, alt-tab, hit print, alt-tab, stop capture. In the course of a second there over 170, 000 events to go through.. In order to find some useful information I searched for printer name, which led me to finding that there were two associated processes. Once I had those I filtered the output so they were all I could see. From there it was just a matter of scrolling through until I found access denied, which I found was for a random folder, C:\tmp\os. What was needed in there I’m not too sure, but providing the user with full access to that folder allowed them to print without issue. Success!
Troubleshooting desktop issues like this isn’t something most admins have to do often, but it is a skill everyone needs to develop. Often times the process to figure out one issue is similar to another, regardless of the technology, platform, or tools involved. The issue I found in this exercise is one that I’m sure is quite rare, so I’m not sure how useful this will be for others, but the steps to figure this out hopefully may help someone in the future. There are often multiple solutions for a problem; imaging the computer would have been the easiest for sure, but sometimes that isn’t always a solution and and often times what sets people apart in the field is an ability to go deeper, to be able to approach things from new angles, and be creative.