我想远程激活未连接到域的计算机(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