![如果没有用户的本地管理员权限,PS1 登录脚本的 GPO 将无法运行](https://linux22.com/image/707721/%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E7%94%A8%E6%88%B7%E7%9A%84%E6%9C%AC%E5%9C%B0%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90%EF%BC%8CPS1%20%E7%99%BB%E5%BD%95%E8%84%9A%E6%9C%AC%E7%9A%84%20GPO%20%E5%B0%86%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C.png)
我有一个 PowerShell .PS1 脚本,我正尝试通过组策略的登录脚本来应用它。这是 .PS1 脚本(非常简单,只需将用户添加到 RD 用户组):
net localgroup "Remote Desktop Users" "$env:USERDOMAIN\$env:USERNAME" /add
根据RSoP.msc
和GPresult
,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
:
选择Start a program
下action
,设置Powershell.exe
为程序/脚本,并将脚本的路径作为参数:
保持所有其他选项卡不变。
当用户登录时,他们应该会看到一个 powershell 窗口出现,通过检查 lusrmgr.msc,你应该看到指定组中的用户: