Normalmente, solo puede hacerse pasar por cuenta de servicio de un servicio de Windows, como menciona esta publicación :
El truco consiste en ejecutar su código como sistema local y desde allí puede hacerse pasar por las cuentas de servicio utilizando el nombre de usuario adecuado sin contraseña. Una forma de ejecutar su código como la cuenta del sistema local es crear un shell de línea de comandos utilizando la técnica que se muestra a continuación (tomada de esta publicación original ) y ejecutar su ensamblado desde allí. Llamar System.Diagnostics.Debugger.Break()
a su código le permite depurar.
Para crear un shell de línea de comando que se ejecute en la cuenta del sistema local, abra una nueva ventana de línea de comando e ingrese:
c:\sc create testsvc binpath= "cmd /K start" type= own type= interact
seguido por:
c:\sc start testsvc
Debería haberse abierto una nueva ventana de comando. En esa ventana, ejecute su application.exe; verá que ahora se está ejecutando como la cuenta de usuario del sistema integrada. Una vez que haya terminado de probar, puede eliminar el servicio de prueba que creó ingresando:
c:\sc delete testsvc
Si intenta hacerlo en su propio contexto de usuario, dichos intentos deberían fallar.