One of my customers has a VB6 application that tells a Common Dialog box to show the list of printers.
It works without any difficulty -- except on one machine. On that computer, a 64-bit Windows 2003 Server machine running Terminal Server, it displays an error message to the effect that the user does not have permission to get the information.
They have already done a great deal of work on this to isolate the cause.
Using sysinternals process explorer, they find that the instance of the executable lacks the "query information" special permission. Using the tool, they can grant the permission to the user for that instance. But the next time they launch the program, it lacks the permission again.
They can reproduce the issue on other Windows machines by using process explorer to remove the "query information" permission.
If you can answer the following question, you're better than 3 levels of Microsoft tech support:
Where is that permissions set? What in the OS determines that setting?