【发布时间】:2013-06-17 09:11:03
【问题描述】:
我使用 Visual Studio 2012 开发了一个包含 Windows 服务的解决方案。VS 2012 删除了创建安装程序的功能,因此我使用了一个用于安装程序生成的第三方工具 (WiX),它可以很好地集成到 Visual工作室。
我的问题是,虽然 WiX 能够安装具有自动启动/停止类型的服务,但它无法安装在启动时启动的服务。
我已经阅读了许多关于为非管理员用户启动和停止服务的文章,但是对于使用带有“net start myservice”的批处理脚本是否真的适用于非管理员用户似乎有些困惑。我不愿意尝试提升指定用户对指定服务的权限,因为它需要为安装应用程序套件的任何用户工作。同样,我也不愿意搞乱组策略,因为:
a) 项目需要由简单的安装程序安装,用户无需摆弄类似的东西 b) 目标机器上的任何用户都需要能够启动服务
所以我的问题是:
- 是否有一种不错的、简单的、保证为非管理员用户工作的方式来启动服务?
- 是否有其他方法可以为 Windows 服务创建安装程序,该安装程序能够在启动时启动该服务?
- 是否有可以作为安装程序的一部分运行的批处理脚本或其他构建后操作,以使服务在启动时启动?
对于如何解决此问题的任何其他建议,我们将不胜感激。
【问题讨论】:
-
我想你在这里很困惑。如果服务配置为自动启动,这意味着服务会在 Windows 启动后立即启动。 “启动时启动”选项仅适用于内核服务,也就是众所周知的设备驱动程序。但是,如果您真的想从您的应用程序中手动启动服务,这个问题已经被问及并得到了回答(见下文)。
标签: windows service visual-studio-2012 admin non-admin