We ran into problems with code that already worked to elevate the rights of a helper process that installs a new printer.
I found this answer here, which nearly matches our code: Windows 7 and Vista UAC - Programmatically requesting elevation in C#
The only difference is that we had set ShellExecute to false. This caused a Win32Exception that the process requires elevated rights. Use ShellExecute solved this.
My question is: why? Most likely there is an answer to that that makes sense and would really to understand what happens so I will know next time something similar is required.
Many thanks in advance for all hints!