我正在创建一个自动部署脚本(作为 bat 文件)。我们的应用程序主要是 Windows 服务。我计划使用 SC CREATE 来创建服务。问题在于将密码以明文形式存储在脚本文件中。有什么方法可以加密密码并传递给 sc create 吗?
另外,有没有办法可以跳过用户名和密码并启动服务?
答案1
我假设这是一个内部应用程序,因为您知道您想要嵌入凭据而不是让客户在安装时选择它们。
在 Windows 7/Windows server 2008 R2 或更高版本中,您可以使用托管服务帐户。这些帐户在设计上没有您知道的密码。(它们的作用类似于计算机帐户,并定期自动更改自己的密码。)
您必须创建帐户,将其与计算机关联,然后将其安装到计算机上(三个 PowerShell 命令)。这些帐户也不允许跨多台计算机(直到 2012 年和 gMSA)。
我不知道除了该批处理脚本之外,您还使用什么进行工作站管理,也不知道您有多少个工作站,但您可能能够使用某种环境变量作为 MSA 名称的一部分,以实现脚本化。对于以名为 的 MSA 命名的工作站SOME-PC
,SOME-PC-YOURSERVICE
安装帐户将Install-ADServiceAccount -Identity SOME-PC-YOURSERVICE
在工作站上运行 PowerShell 命令SOME-PC
。
一旦在工作站上创建并安装了 MSA,您在指定运行服务的帐户时就无需提供密码。