如何使用c#以编程方式安装系统服务以使用组管理服务帐户(gMSA)

本文关键字:管理服务 gMSA 何使用 编程 方式 系统服务 安装 | 更新日期: 2023-09-27 18:06:54

我正在一个新环境中部署公司的系统,我们的IT组给了我一个服务帐户列表,用于我们的每个系统服务。然而,他们告诉我这些帐户是组管理服务帐户(简称ggmsa),没有密码,因为它们是由"密钥分发服务"管理的。

我以前没有使用过gmsa,但我们的安装程序的源代码非常简单,但由于缺乏密码,它无法工作。

var process = new ServiceProcessInstaller() {
    Account = ServiceAccount.User,
    Username = <username>,
    Password = <password>,
};
var service = new ServiceInstaller() {
    ServiceName = <code_name>,
    DisplayName = <pretty_name>,
};
service.ServicesDependedOn = <dependencies>;
service.StartType = ServiceStartMode.Automatic;
service.DelayedAutoStart = true;
Installers.Add(process);
Installers.Add(service);
base.Install(stateSaver);

我如何修改我的服务安装程序使用gMSA时,没有给出密码。我(或其他具有管理员权限的用户)将手动安装服务。

如何使用c#以编程方式安装系统服务以使用组管理服务帐户(gMSA)

我能够解决这个问题;我有几处需要修改。

首先,该帐户的用户名需要以$为后缀,因此,将domain'sysuser替换为domain'sysuser$

接下来,我必须使用null作为密码,而不是string.Empty