环境变量是否可用于 Windows 中的系统级启动脚本?

环境变量是否可用于 Windows 中的系统级启动脚本?

我计划从组策略运行系统启动脚本。在计算机配置 -> Windows 设置 -> 脚本(启动/关机)节点中定义的系统启动脚本与登录脚本的不同之处在于,它们使用 LocalSystem 帐户的凭据运行,并在 WinLogon 运行(允许用户登录工作站)之前进行处理。

我希望脚本位于 %ProgramFiles% 中,这是一个环境变量,通常(但并非总是)指向 C:\Program Files。

鉴于 WinLogon 尚未运行,我可以指望这个变量可用吗?

要清楚的是,这是定义脚本的地方:

系统启动脚本

答案1

要查看实际效果,您可以捕获进程监控启动跟踪(“选项”->“启用启动日志”)。

为了减少捕获的事件,您可以:

  • 为操作‘流程启动’添加过滤器;
  • 从‘过滤器’菜单中选择‘删除已过滤事件’以减轻负载。

重新启动并保存.PML 后,您可以从“进程启动”事件的“事件”选项卡中看到进程环境变量。

“默认情况下,子进程会继承其父进程的环境变量。”

您有以下进程树(“工具” - “进程树”)来启动批处理文件:

|-->Wininit.exe
|---->services.exe
|------>svchost.exe  (C:\WINDOWS\system32\svchost.exe -k GPSvcGroup)
|-------->gpscript.exe
|---------->cmd.exe  (C:\windows\system32\cmd.exe /c "C:\program files\script.bat")

https://i.stack.imgur.com/uBPw3.jpg

相关内容