【问题标题】:Is it possible to programmatically set the user account for a windows service?是否可以以编程方式设置 Windows 服务的用户帐户?
【发布时间】:2010-11-17 01:41:28
【问题描述】:

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

【问题讨论】:

    标签: c# windows vb.net windows-services


    【解决方案1】:

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

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

    【讨论】:

    • 如果您没有在代码中指定帐户,并且将帐户的 ServiceProcessInstaller 属性设置为用户,安装期间将打开一个表单对话框,允许执行安装的个人指定域用户帐户和密码。
    【解决方案2】:

    【讨论】:

    • 你能用它在运行时(而不是编译时)设置用户名和密码吗?您不需要能够访问已经编译到您的服务可执行文件中的安装程序吗?我可能不得不改用 WMI 路线。
    • 您的服务可以拥有自己的安装程序类,该类继承自“System.Configuration.Install.Installer”。我们使用这个继承的类并将一个表单与它关联起来。该表单在安装过程中出现并提示各种内容,包括用户/密码。然后在 Installer 类中覆盖 OnBeforeInstall 并设置 Me.ServiceProcessInstaller1.Username。
    • 并修改WinService的windows服务帐号还存在?
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      A Windows Service without a template 有一些关于设置服务参数和内容的内容,位于第 5 页的关于自定义服务的部分。

      【讨论】:

        【解决方案5】:

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

        我向你建议第三种方法...

        嗨!我是一个开放的开发者 源 Windows 服务托管 称为 Daemoniq 的框架。并且路过 通过命令行的凭据是其中之一 它的特点。你可以从 http://daemoniq.org

        目前的功能包括:

        • 通过 CommonServiceLocator 提供与容器无关的服务位置
        • 设置常用服务属性,如 serviceName、displayName、description 和 serviceStartMode 通过 app.config
        • 在同一进程上运行多个 Windows 服务
        • 通过 app.config 设置恢复选项
        • 通过 app.config 设置依赖的服务
        • 通过命令行设置服务进程凭据
        • 通过命令行安装、卸载、调试服务

        干杯!

        【讨论】:

        • 无耻地插入不再存在的东西。
        猜你喜欢
        • 1970-01-01
        • 2021-05-13
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 2013-08-03
        • 1970-01-01
        • 1970-01-01
        • 2014-11-22
        相关资源
        最近更新 更多