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

时间:2016-09-12 23:56:45

标签: c# .net service installation

我正在新环境中部署我公司的系统,IT团队已经为我提供了一个服务帐户列表,用于我们的每个系统服务。但是,他们告诉我帐户是Group Managed Service Accounts(或简称gMSA),并且没有密码,因为它们是由"密钥分发服务"管理。

我之前没有使用过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。我(或具有管理员权限的其他用户)将手动安装服务。

1 个答案:

答案 0 :(得分:2)

我能够解决这个问题;我需要改变一些事情。

首先,帐户的用户名需要以$作为后缀,因此domain\sysuser代替domain\sysuser$

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