I should have mentioned that in the same project I'm also using Word interop where I'm using the Impersonate() method. This works fine cause I'm creating instances of WordApplication and just doing operations directly on the object. This makes it run as
the impersonated user.
This does however, not apply when you execute an external process using Process.Start().
I use the win32 api function LogonUser() in advapi32.dll to get the user Token, which I then use in the Impersonate(hToken) method.