【问题标题】:How to create GMSA account via C#如何通过 C# 创建 GMSA 帐户
【发布时间】:2019-08-15 20:27:31
【问题描述】:

我试图寻找 c# 代码示例来查看 AD 服务帐户是如何创建的,但运气不佳。任何人都可以提供创建AD服务帐户的示例代码吗?

我尝试过 UserPrincipal 在名称末尾加上 $,但运气不佳。拒绝访问的错误(无法在根 MyDomain 或 CN 下创建)

// Domain Context to use specific LDAP path.
domainContext = new PrincipalContext(ContextType.Domain, domainContext.ConnectedServer, "CN=Managed Service Accounts,dc=mydomain");
UserPrincipal userAccount = new UserPrincipal(domainContext)
{
  DisplayName = userName,
  SamAccountName = $"{userName}$",
  Description = description
};
userAccount.Save();

【问题讨论】:

  • 运行上面的代码会发生什么?有什么事吗?有什么错误吗?
  • 当我尝试运行上述代码时,出现“访问被拒绝”错误。主要是因为我无法直接在“mydomain”下或在为 MSA 设置的 CN 下创建帐户。
  • 好像是授权问题
  • 您可以使用 powershell 创建帐户吗? docs.microsoft.com/en-us/previous-versions/windows/it-pro/…
  • 我可以使用在 CN=Managed Service Accounts 下映射帐户的 new-adserviceaccount 在 powershell 中创建帐户而不会出现任何问题。我想找到一种本地 c# 方法来创建帐户,而不是调用 powershell。

标签: c# gmsa


【解决方案1】:

有点晚了,但我想我可以回答。您需要通过 logoncli.dll 使用 NetAddServiceAccount 功能。即使添加了我认为合适的类型填充程序,我也无法让它在 PowerShell 中工作,但我只是遇到了一个似乎可以工作的模块。

https://github.com/beatcracker/Powershell-Misc/blob/master/Use-ServiceAccount.ps1

该脚本中类型定义的 C# 代码应该包含您自己实现它所需的一切。

【讨论】:

  • 在哪里可以找到 logoncli.dll ?一旦找到,您如何建议它在 C# 中使用?
  • 与大多数其他系统库相同的位置。试试system32。您可能需要学习如何在 c# 中使用 win32 API 调用。如果你不得不问...
猜你喜欢
  • 2022-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多