无需用户交互即可激活并指定登录脚本

无需用户交互即可激活并指定登录脚本

我想远程激活未连接到域的计算机(Win10 和 11)的登录脚本。

C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logon我已经可以以管理员身份远程部署软件/脚本/文件,例如:我可以在或中部署logon.batC:\Windows\System32\Repl\Import\Scripts或运行命令/安装sw。

我知道有一个本地组策略可以执行此操作,并且还可以在用户(用户/组管理单元)的配置文件选项卡中在用户级别设置登录脚本。

我找不到可以启用并指定不使用 GUI 运行什么脚本的命令/注册表。

答案1

我会为此使用计划任务。在触发器下指定登录时和任何用户。这样,您就可以完全控制脚本名称、位置、脚本类型等。只需确保将脚本放在非管理员无法更改的位置,或者使用 powershell 命令行调用脚本,例如使用 powershell.exe 作为要运行的程序,并使用类似以下参数

-Command "&{if ((get-filehash c:\myscript.ps1).Hash -eq sdf83uf23f288vf0939r23) {& powershell.exe -file c:\myscript.ps1}}

该命令在谁的上下文中运行对你来说重要吗?SYSTEM,作为该用户,等等?

答案2

为此,需要编辑两个文件,然后启动 gpupdate 以便注册表得到更新。

对于启动/关闭,script.ini位于 C:\Windows\System32\GroupPolicy\Machine\Scripts
对于登录/注销,script.ini位于 C:\Windows\System32\GroupPolicy\User\Scripts
您需要添加例如:

[Logon]
0CmdLine=first_logon_scritp.bat
0Parameters=
1CmdLine=second_logon_script.bat
1Parameters=

在这种情况下,作为登录脚本,该文件必须部署在:

C:\Windows\System32\GroupPolicy\用户\脚本\

第二个文件是:

GPT.ini 在 C:\Windows\System32\GroupPolicy 中你需要添加:

gPCUserExtensionNames=[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]

之后运行gpupdate更新注册表

来源:

https://simplecodesoftware.com/articles/how-to-set-up-group-policy-scripts-programmatically

https://social.technet.microsoft.com/Forums/windowsserver/en-US/0a68a605-3f3f-4c0a-a402-f549e25b9cba/assign-a-local-logon-script-using-group-policy?forum=winserverGP

相关内容