将PowerShell作为组托管服务帐户启动

but5z9lq  于 2023-05-07  发布在  Shell
关注(0)|答案(2)|浏览(227)

如何使用gMSA帐户启动PowerShell。我右键单击PowerShell图标,以不同的用户身份运行,然后输入域\msa$(不带密码)。它会因凭据不正确而出错。
我已经在机器上安装了服务帐户,并运行Test-ADServiceAccount返回true。我已经授予它“作为服务登录”和“作为批处理作业登录”的权限(我真的不认为这是必要的,但无论如何尝试了,它没有工作)。
有什么想法吗

hfyxw5xn

hfyxw5xn1#

有不同的方法来设置任务运行一个PS脚本与gMSA,这是我个人做的,因为我发现它很容易做到。
1.首先,您需要开发您的.ps1,以便使用您的用户或具有下载文件权限的服务帐户从FS下载文件。
1.测试脚本并正确运行后,使用步骤1中使用的用户或服务帐户设置并测试计划任务。最好事先配置所有触发器/额外配置,因为一旦更新了计划任务,如果不重新执行所有过程,就无法修改它。
1.计划任务完全正常工作并设置了所有触发器后,您可以使用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的名称:

Remember, once you update the task if you need to edit it later, Task Scheduler will force you to use a different user and the whole process of updating the task via PS will have to be repeated.
考虑到:

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

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

dxxyhpgq

dxxyhpgq2#

psexec确实可以工作,至少是交互式的。在“安装”了gMSA的计算机上,使用以下命令:

psexec -u DOMAIN\gMSA_acct$ powershell.exe

当提示输入密码时,只需按Enter。这将启动Powershell作为gMSA。您可以从该会话中使用WHOAMI进行验证。
您可以使用-p ~输入空密码。这样就不需要交互。
但是,这不会改变以gMSA运行任务的建议。这是100%正确的,你不应该运行任务作为LocalSystem,特别是如果你需要访问远程资源。也许文件复制任务可以从其他任务中分离出来。

相关问题