我创建了一个 powershell 脚本,用于运行 Chocolatey 更新以及在本地和网络共享上进行一些日志记录。脚本本身位于网络共享上,我希望能够让客户端从那里运行它。
我的想法是部署计划任务以通过 GPO 运行脚本。我尝试使用计算机策略和用户策略来执行此操作,并在计划任务 GPO gui 中定义活动目录服务帐户。
对于行动,我选择powershell.exe -NonInteractive -WindowStyle Hidden -ExecutionPolicy bypass -file \\networkshare\scripts\script.ps1
在安全选项下,我定义服务帐户来运行任务并检查“无论用户是否登录都运行”和“以最高权限运行”
为了进行故障排除,此服务帐户是 OUADMIN 组,并且我确认该帐户有权访问网络共享。
我将 GPO 应用到我的机器,检查事件日志,发现此错误:
组策略对象中的计算机“ChocoUpdate”首选项Chocolatey Sch Task Testing {BDF8E170-C909-4115-8909-D42792DF977A}
未应用,因为它失败,错误代码为“0x80070005 访问被拒绝”。此错误已被抑制。
我在这里想念什么? 有没有更好的方法可以做到这一点?
答案1
此错误表明 GPO 存在权限问题,而不是脚本存在权限问题。您可以通过在本地计算机上的任务计划程序中手动安排它并检查它是否正常工作(和/或手动运行该任务)来验证这一点。
检查“范围”选项卡上“安全筛选”下的 GPO 权限,并检查“委派”选项卡上的细粒度权限。要分配 GPO 的计算机帐户必须具有适当的权限才能读取和运行 GPO。