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

tf7tbtn2  于 2022-12-24  发布在  .NET
关注(0)|答案(1)|浏览(153)

我正在一个新的环境中部署公司的系统,我们的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?我(或其他具有管理员权限的用户)将手动安装服务。

xnifntxz

xnifntxz1#

我能够解决这个问题;有几件事我需要改变。
首先,帐户的用户名需要以$作为后缀,因此它不是domain\sysuser,而是domain\sysuser$
接下来,我不得不使用null作为密码,而不是string.Empty

相关问题