无忧启动论坛

标题: 求部署前、部署中、部署后、登录时、进桌面 调用程序实现原理 [打印本页]

作者: listen_run    时间: 前天 17:52
标题: 求部署前、部署中、部署后、登录时、进桌面 调用程序实现原理
常见的封装工具比如IT天空的ES5、驱动总裁的SC

都有5个环节可以调用执行程序,这5个环节就是 部署前、部署中、部署后、登录时、进桌面

在合适的时机,通过自定义调用执行程序可以去完成比如安装运行库、安装驱动、执行脚本等功能

查找资料后发现,部署中、登录时、进桌面本质是通过位于C:\Windows\Panther\Unattend.xml的
无人值守应答文件的<RunSynchronous>、<FirstLogonCommands>、<LogonCommands>这几个元素标签实现的

有没有大佬讲下剩下两个环节的部署前、部署后是怎么实现?




作者: 邪恶海盗    时间: 前天 18:01
哪有什么原理,巨硬提供的接口罢了,渣度搜一下deploy相关的资料应该找得到,我以前看到过...


二○二五年九月十一日
作者: 肉仔    时间: 前天 19:51
部署前 (Pre-deployment)
实现方式:

在封装时直接集成到系统镜像中
通过修改系统服务或启动项实现
利用Windows PE环境执行
具体实现方法:

服务方式

<BATCH>
# 创建自定义服务,设置为自动启动
sc create PreDeployService binPath="C:\PreDeploy\script.exe" start=auto
注册表启动项

<BATCH>
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "PreDeploy" /d "C:\PreDeploy\script.exe"
任务计划程序

<BATCH>
schtasks /create /tn "PreDeploy" /tr "C:\PreDeploy\script.exe" /sc onstart /ru system
部署后 (Post-deployment)
实现方式:

通过注册表Run/RunOnce键值
系统服务延迟启动
组策略脚本
具体实现方法:

RunOnce注册表项

<BATCH>
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "PostDeploy" /d "C:\PostDeploy\cleanup.exe"
延迟启动服务

<BATCH>
sc create PostDeployService binPath="C:\PostDeploy\script.exe" start=delayed-auto
计划任务延迟执行

<BATCH>
schtasks /create /tn "PostDeploy" /tr "C:\PostDeploy\script.exe" /sc onstart /delay 0005:00
5个环节的执行顺序总结:
<TEXT>
部署前 → 部署中 → 部署后 → 登录时 → 进桌面
  ↓         ↓         ↓         ↓         ↓
服务/启动项  Unattend  RunOnce   FirstLogon LogonCommands
关键区别:

部署前/后:系统级执行,无用户界面
登录时/进桌面:用户级执行,可有界面交互
作者: seeimpact153    时间: 前天 21:40
来学习一下啦
作者: listen_run    时间: 前天 21:43
肉仔 发表于 2025-9-11 19:51
部署前 (Pre-deployment)
实现方式:

感谢大佬回复,由微软官方文档说明链接吗?
作者: listen_run    时间: 前天 21:44
邪恶海盗 发表于 2025-9-11 18:01
哪有什么原理,巨硬提供的接口罢了,渣度搜一下deploy相关的资料应该找得到,我以前看到过...

不才,没查到其它环节的文档说明
作者: seeimpact153    时间: 前天 21:57
感谢分享经验
作者: tlzsw    时间: 昨天 00:27
肉仔 发表于 2025-9-11 19:51
部署前 (Pre-deployment)
实现方式:

感谢大佬整理回复
作者: 肉仔    时间: 昨天 00:29
listen_run 发表于 2025-9-11 21:43
感谢大佬回复,由微软官方文档说明链接吗?

我是帮你问的ai,你看看
作者: it323    时间: 昨天 08:14
感谢分享!
作者: yzw92    时间: 昨天 08:16
学习一下
作者: ctx    时间: 昨天 11:30
好帖收藏起来先
作者: 527104427    时间: 昨天 12:05
肉仔 发表于 2025-9-11 19:51
部署前 (Pre-deployment)
实现方式:

牛逼
作者: 绿光科技    时间: 昨天 13:45
这个可以有 普及知识
作者: guong    时间: 昨天 15:01
来了解一下
作者: leono    时间: 昨天 17:10
你所说的这几个RunSynchronous等标签只是应答文件的不同阶段的调用命令,并不是具体阶段,更上层的specialize、OOBE才是配置阶段标签,建议去微软官网了解下具体的原理及下属标签含义(没权限加URL),
只有懂了这些,才会明白封装工具的工作原理,再配合微软的几个默认注册表接口,甚至可以不需要封装工具,只调用7z解压就能随心所欲定制自动化原始安装,驱动总裁的SC前身工具就是这样做的,恩,说的再多还是自己动手玩玩吧
作者: listen_run    时间: 昨天 22:57
leono 发表于 2025-9-12 17:10
你所说的这几个RunSynchronous等标签只是应答文件的不同阶段的调用命令,并不是具体阶段,更上层的speciali ...

我就是这个意思,不使用ES5/SC封装工具,直接自己动手修改
但问题是其余2个阶段的接口我没查到在哪,怎么调用




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3