是否有可能以编程方式设置Windows服务的用户帐户?

我创build了一个帐户设置为用户的Windows服务。 这意味着当我安装服务时,我需要传递一个用户名和密码。 有没有办法设置这些可能在ProjectInstaller类也许在BeforeInstall事件? 如果是这样的话?

看看System.ServiceProcess.ServiceProcessInstaller

以下添加到项目安装程序将在安装期间分配服务登录信息。

public ProjectInstaller() { InitializeComponent(); serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.<account type>; serviceProcessInstaller1.Username = <domain\userId>; serviceProcessInstaller1.Password = <password>; } 

看看CodeProject的DynamicInstaller

有一点关于在没有模板的Windows服务中设置服务参数和东西它在第5页中有关定制服务的位。

通常情况下,您将能够将这些凭据传递给安装程序类。 您可以对其进行硬编码或将其作为命令行参数传递。 第二种方法更合适,但是它会要求您不必要地解析命令行参数。

我向你提出第三种方法

<ShamelessPlug>

嗨! 我是一个名为Daemoniq的开源Windows服务托管框架的开发人员。 通过命令行传递证书是它的一个特点。 你可以从http://daemoniq.org下&#x8F7D;

目前的功能包括:

  • 容器不可知的服务位置通过CommonServiceLocator
  • 通过app.config设置常用服务属性,如serviceName,displayName,description和serviceStartMode
  • 在同一个进程上运行多个Windows服务
  • 通过app.config设置恢复选项
  • 通过app.config设置服务
  • 通过命令行设置服务进程证书
  • 通过命令行安装,卸载,调试服务

</ ShamelessPlug>

干杯!