如果没有用户的本地管理员权限,PS1 登录脚本的 GPO 将无法运行

如果没有用户的本地管理员权限,PS1 登录脚本的 GPO 将无法运行

我有一个 PowerShell .PS1 脚本,我正尝试通过组策略的登录脚本来应用它。这是 .PS1 脚本(非常简单,只需将用户添加到 RD 用户组):

net localgroup "Remote Desktop Users" "$env:USERDOMAIN\$env:USERNAME" /add

根据RSoP.mscGPresult,GPO 的应用没有问题。我可以手动运行 PS1,它可以正常工作(尽管是以管理员身份运行的,并且带有Set-ExecutionPolicy Unrestricted)。但是,脚本不起作用,因为登录的用户永远不会被添加到“远程桌面用户”组中。

RSoP.msc“上次执行”时间下,脚本是空白的。我想查看事件查看器以更好地了解脚本无法运行的原因,但不确定具体要查找什么。

编辑:显然登录脚本必须以登录用户身份运行,因此它会继承该用户拥有(或者说没有)的任何权限。我将尝试在计算机端运行该脚本,看看它是否能在终端用户没有本地管理员权限的情况下工作,因为它将使用系统帐户。

答案1

我可以将其作为通过组策略部署的计划任务来运行,并使用系统作为运行计划任务的帐户。

在 下创建一个新的计划任务Computer Configuration > Preferences > Control Panel Settings > Scheduled Tasks,选择Scheduled Task (Windows Vista and Later)任务类型:

任务类型

任务位置

将帐户设置为NT AUTHORITY/System,并设置为run with highest privileges任务权限

将其设置为触发器 at log onany user![任务触发器

选择Start a programaction,设置Powershell.exe为程序/脚本,并将脚本的路径作为参数: 任务操作

保持所有其他选项卡不变。

当用户登录时,他们应该会看到一个 powershell 窗口出现,通过检查 lusrmgr.msc,你应该看到指定组中的用户: 用户已添加到群组

相关内容