He creado un servicio de Windows que tiene la cuenta establecida para el usuario. Lo que significa que cuando instale el servicio, necesito pasar un nombre de usuario y una contraseña. ¿Hay alguna manera de establecer estos tal vez en la clase ProjectInstaller tal vez en el evento BeforeInstall? ¿si es así, cómo?¿Es posible establecer programáticamente la cuenta de usuario para un servicio de Windows?
Respuesta
Tome un vistazo a System.ServiceProcess.ServiceProcessInstaller
Tome un vistazo a DynamicInstaller from CodeProject
Hay un poco acerca de cómo configurar los parámetros de servicio y otras cosas en su A Windows Service without a template en la página 5 de la broca sobre la personalización de un servicio.
Normalmente, podrá pasar esas credenciales a la clase Installer. Puede codificarlo o pasarlo como un argumento de línea de comandos. El segundo enfoque es más apropiado, pero requerirá que analice los argumentos de la línea de comandos innecesariamente.
os propongo un tercer enfoque ...
<ShamelessPlug>
Hola! Soy un desarrollador de un servicio de Windows abierto que aloja el marco llamado Daemoniq. Y al pasar las credenciales a través de la línea de comandos es una de las características de . Puede descargarlo desde http://daemoniq.org
características actuales incluyen:
- contenedor de ubicación de servicio a través de los agnósticos CommonServiceLocator
- propiedades de uso común mencionados como serviceName, idioma, descripción y serviceStartMode través app.config
- ejecutar múltiples servicios de Windows en el mismo proceso
- establecer opciones de recuperación a través de app.config
- servicios establecidos dependían través app.config credenciales
- conjunto de procesos de servicio a través de línea de comandos
- instalar, desinstalar, los servicios de depuración a través de línea de comandos
</ShamelessPlug >
¡Aclamaciones!
plug shameless para algo que ya no existe. – Grubsnik
La siguiente adición al instalador del proyecto asignará la información de inicio de sesión del servicio durante la instalación.
public ProjectInstaller()
{
InitializeComponent();
serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.<account type>;
serviceProcessInstaller1.Username = <domain\userId>;
serviceProcessInstaller1.Password = <password>;
}
Si no especifica una Cuenta en el código y tiene la propiedad ServiceProcessInstaller para la Cuenta establecida en Usuario, se abrirá un diálogo de formulario durante la instalación que permitirá a la persona que realiza la instalación especificar una cuenta de usuario y contraseña de dominio. – JohnL
- 1. ¿Es posible establecer MasterType programáticamente?
- 2. Iniciar/detener un servicio de Windows desde una cuenta de usuario que no sea administrador
- 3. ¿Es posible que un servicio de Windows suplante a un usuario sin una contraseña?
- 4. Derechos mínimos necesarios para ejecutar un servicio de Windows como cuenta de dominio
- 5. ¿Es posible cambiar programáticamente el protector de pantalla y/o fondo de escritorio de un usuario?
- 6. ¿Cómo puede un servicio de Windows reiniciarse programáticamente?
- 7. Servicio de Windows Elija Usuario o Cuenta del sistema en la Instalación
- 8. Cómo eliminar la cuenta de usuario de Windows usando C#
- 9. Verificar el nombre de usuario y la contraseña de la cuenta de Windows
- 10. Script Powershell para cambiar la cuenta de servicio
- 11. ¿Es posible hacer un servicio WinRT?
- 12. ¿Es posible usar Google Analytics para rastrear una sola cuenta de usuario?
- 13. Usar Process.Start() para iniciar un proceso como un usuario diferente dentro de un servicio de Windows
- 14. Establecer la descripción del servicio de Windows en C++
- 15. ¿Es posible lanzar un intento para APPWIDGET_UPDATE programáticamente?
- 16. Establecer programáticamente un usuario de base de datos para que sea db_owner
- 17. Iniciando programáticamente la actividad 'Agregar cuenta de Google' en Android
- 18. ¿Es posible establecer la propiedad alpha de un accesorio UITViewViewCell?
- 19. crear cuenta de usuario local
- 20. Deje que el usuario especifique en qué cuenta se ejecuta un servicio
- 21. ¿Es posible establecer programáticamente el estado de las teclas de cambio y control?
- 22. ¿Cómo usar Fiddler para monitorear un servicio de Windows?
- 23. ¿Es posible establecer un objeto como nulo?
- 24. ¿Es posible establecer la posición de la imagen de UIImageView?
- 25. ¿Puede wix solicitar un nombre de usuario/contraseña del servicio de Windows?
- 26. ¿Cómo puedo probar la unidad de un servicio de Windows?
- 27. ¿La diferencia entre la cuenta 'Sistema local' y la cuenta 'Servicio de red'?
- 28. ¿Es posible proteger un servicio web con Autenticación de formularios?
- 29. ¿Es posible borrar programáticamente el historial de la consola?
- 30. Posible abrir programáticamente un Spinner en la aplicación de Android?
¿Se puede utilizar para configurar el nombre de usuario y la contraseña en el tiempo de ejecución (en lugar de en tiempo de compilación)? ¿No necesitaría poder acceder a los instaladores que ya están compilados en su ejecutable de servicio? Probablemente tendré que ir a la ruta WMI en su lugar. –
Su servicio puede tener su propia clase de instalador que hereda de "System.Configuration.Install.Installer". Usamos esta clase heredada y asociamos un formulario con ella. El formulario aparece durante la instalación y solicita varias cosas, incluido usuario/contraseña. Luego, en la clase Installer, anula OnBeforeInstall y me configura.ServiceProcessInstaller1.Username. – MattH
¿Y modificar la cuenta de servicio de Windows para WinService que todavía existe? – Kiquenet