【问题标题】:Start PowerShell As A Group Managed Service Account将 PowerShell 作为组托管服务帐户启动
【发布时间】:2021-03-12 16:59:45
【问题描述】:

如何使用 gMSA 帐户启动 PowerShell。我右键单击 PowerShell 图标,以其他用户身份运行,然后输入 domain\msa$ 而不输入密码。它错误地指出凭据不正确。

我已经在机器上安装了服务帐户并运行 Test-ADServiceAccount 返回 true。我已授予它“作为服务登录”和“作为批处理作业登录”权限(我认为这不是必需的,但还是尝试了,但没有成功)。

有什么想法吗?

【问题讨论】:

  • 我认为这是不可能的,至少在我的经验中是不可能的。 gMSA 可用于作为计划任务或服务运行。 However, services that run on top of the Cluster service can use a gMSA or a sMSA if they are a Windows service, an App pool, a scheduled task, or natively support gMSA or sMSA.
  • 我的最终目标是从文件共享中下载文件。有没有办法将 gmsa 帐户作为凭证对象传入?我已经尝试使用空白密码和密码空格,但都没有成功(这是使用 New-PSDrive cmdlet)。
  • 我会为你的问题添加一个答案,这样我就有解释的余地​​了。

标签: powershell windows-server-2016 gmsa


【解决方案1】:

使用 gMSA 设置运行 PS 脚本的任务有多种不同的方法,这是我个人所做的,因为我发现它很容易做到。

  1. 首先,您需要开发 .ps1 以使用您的用户或具有下载文件权限的服务帐户从 FS 下载文件。
  2. 脚本经过测试并正确运行后,使用您在步骤 1 中使用的用户或服务帐户设置和测试计划任务。最好预先配置所有触发器/额外配置,因为一旦您更新计划任务如果不重新执行所有过程,您将无法修改它。
  3. 一旦计划任务完全正常运行并设置了所有触发器,您就可以继续使用 gMSA 而不是您的用户或服务帐户来更新任务。我个人使用这个:
$taskName = "My Scheduled Task Name"
$gMSAName = (Get-ADServiceAccount gMSA_Name).sAMAccountName # Or hardcode your gMSA Name with a $ at the end
$runLevel = "Highest" # Limited, etc
$principal = New-ScheduledTaskPrincipal -UserID $gmsaName -LogonType Password -RunLevel $runLevel

Set-ScheduledTask -TaskName $taskName -Principal $principal 

运行此程序后,如果一切正常,一旦您重新打开任务计划程序并搜索您的任务,您应该会在此处看到 gMSA 的名称:

请记住,一旦您更新了任务,如果您以后需要对其进行编辑,任务计划程序将强制您使用不同的用户,并且必须重复通过 PS 更新任务的整个过程。

考虑:

  • gMSA 需要与您或您的服务帐户在文件共享上的相同权限才能读取/修改/等。
  • 运行任务的服务器必须是 gMSA 的关联安全组的成员:
(Get-ADServiceAccount gMSA_Name -Properties PrincipalsAllowedToRetrieveManagedPassword).PrincipalsAllowedToRetrieveManagedPassword

这是关联的 AD 组,您的任务服务器必须是该组的成员才能使用 gMSA。

【讨论】:

  • 感谢您的回答!我试图将其与之集成的任务作为本地系统帐户运行(这是一个计划任务)。该任务负责导入我的脚本并运行一些 powershell 命令。这就是访问文件共享的地方。我可以让本地系统帐户访问文件共享并且它可以工作。但到目前为止,最终尝试使用 gmsa 帐户的尝试都是徒劳的。回顾我的问题,我没有提到作为本地系统运行的任务,所以如果这让你走错了调查道路,我深表歉意。
  • 好的,如果任务已经运行良好,那么您只需要授予 gMSA 远程文件共享权限和在本地服务器上作为任务运行的权限,然后更新任务以作为gMSA 就是这样。
  • 这是我无法改变的一点。该任务由程序创建,并且必须以本地系统帐户身份运行。我可能会走上 uisng psexec 或 net use 的道路,看看它们是否支持 gmsa
  • 我想,你没有明白我的意思。您不能冒充为 gMSA 帐户,net usepsexecsystem.management.automation.pscredential 这些都不起作用。如果任务由于某种原因在本地系统上执行需要管理员权限的其他操作而作为系统运行,您可以通过在本地计算机上为您的 gMSA 帐户授予管理员权限来获得完全相同的结果。
猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
相关资源
最近更新 更多