我想通过 gpo(scripts/logon)在所有域客户端上运行批处理文件,但问题是运行批处理文件需要管理员权限。我想知道是否有任何命令或脚本可以将管理员的用户名和密码放入此批处理文件中,并且当文件运行时,客户端上的管理员权限会自动授予此文件并以此权限执行文件?顺便说一句,此文件仅执行一次,在进行所需的设置后,此 gpo 将被完全删除。我知道这样做的风险,但我想这样做。
答案1
我建议在每台计算机上创建一个带有登录触发器的计划任务,这样当任何用户登录时它都会执行您的脚本。任务本身可以在系统或本地服务或任何其他模式下运行。
您可以配置脚本,使其在完成后删除计划任务,但如果它应该在每个用户登录时运行(因为您询问的是登录脚本),那么这可能没有必要。在这种情况下,请确保您的脚本有某种方式来判断是否已进行更改,以便它可以正常退出。
如果您可能定期更新脚本,则可以将 GPO 配置为在用户登录时将其复制到本地目录,而计划任务在被触发后运行一个简单的批处理,循环检查是否将主脚本写入本地目录,然后在到达后调用它。
下面是如何配置登录时运行的计划任务的示例(尽管我不会使用管理员帐户来执行该任务):https://sid-500.com/2017/07/26/how-to-automatically-start-powershell-at-every-logon/
请注意,您可以通过多种方式在 Powershell 脚本中缓存凭据,但将其密封起来以便它能在任何计算机上运行却很复杂。在构建时部署到您的计算机或通过其他流程(如 SCCM)推送的计划任务要容易得多。