在自动化服务部署时设置用户服务运行的最佳实践是什么?
What is the best practice for setting user service runs under when automating service deployment?
我们正在尝试自动化我们创建的一些服务的部署。我们不想将用户名和密码硬编码到应用程序安装程序中。不硬编码用户名和登录名的问题是,它使发布的自动化出现问题。
如何将windows服务打包到msi中,以便:
-
服务被安装为在特定的用户名下运行,这取决于环境实例。例如,在生产环境中,它运行在DOMAIN_NAMEProductionServiceUser下,但如果我们将相同的服务部署到登台环境中,服务运行在DOMAIN_NAMEStagingServiceUser下。
-
如果您通过"添加删除程序"卸载服务,该服务将被删除。
要自动安装和卸载服务,您可以使用Windows安装程序支持:
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa371637 (v = vs.85) . aspx
- http://msdn.microsoft.com/en-us/library/windows/desktop/aa371634 (v = VS.85) . aspx
Visual Studio安装项目不支持服务表。因此,如果您正在使用它,则需要编写管理服务的安装和卸载自定义操作。其他设置创建工具提供对服务的直接支持。
要动态设置服务帐户,可以使用自定义安装程序属性,例如SERVICE_ACCOUNT。在安装过程中,您可以将此属性设置为所需的帐户。这可以通过多种方式实现:自定义动作,对话框控件,命令行等。
服务只能在为其设置了作为服务登录策略的情况下在自定义用户帐户下运行,即使它是管理员帐户。此策略可以在安装期间通过使用ntrights.exe作为自定义操作来设置。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 派生类销毁的最佳实践是什么
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 在reactor中存储eventHandlers的最佳方式是什么
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将一系列整数放入类的最佳方法是什么?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 在 c++ 中解析数据包数据的最佳方法是什么?
- 初始化数组、"memset"或" {//value} "的最佳方法是什么?
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 在向量中查找大于 0(或通常为 k)的最小元素的最佳方法是什么?