Active Directory 工具学习笔记(10.9):AdInsight------命令行选项与自动化采集模板
- [Active Directory 工具学习笔记(10.9):AdInsight------命令行选项与自动化采集模板](#Active Directory 工具学习笔记(10.9):AdInsight——命令行选项与自动化采集模板)
-
- 适用场景
- [常见启动参数速览(以你环境中 `AdInsight.exe /?` 为准)](#常见启动参数速览(以你环境中
AdInsight.exe /?为准)) - [模板一:30 分钟抓取 + 双轨落盘(会话 + TSV)](#模板一:30 分钟抓取 + 双轨落盘(会话 + TSV))
- 模板二:登录波峰"时间窗"抓包(计划任务)
- [模板三:长时间运行 + 自动切片(滚动留痕)](#模板三:长时间运行 + 自动切片(滚动留痕))
- 模板四:批量采集(多服务器统一收集)
- 模板五:事件现场"一条龙"打包上送
- 过滤器与视图的团队协作
- 输出与命名规范(可直接抄)
- [与计划任务/EDR 的配合](#与计划任务/EDR 的配合)
- 常见坑与规避
- 结语
Active Directory 工具学习笔记(10.9):AdInsight------命令行选项与自动化采集模板
目标:把 GUI 点点点变成一键批量 与可复现剧本 。本文汇总 AdInsight 的常见命令行开关(以工具
/?为准),并给出开箱即用的自动化模板。
适用场景
- 在变更窗口里,预先开抓、到点自动收官并落盘。
- 在大规模联调时,用统一过滤器与字段集输出可计算数据。
- 在突发事件时,脚本一跑,采集→保存→打包→校验→上送全流程闭环。
常见启动参数速览(以你环境中 AdInsight.exe /? 为准)
不同版本参数名可能略有差异,下列为高频能力模型 (对应功能与常见命名)。若你想精准对照,请以你手头版本的
/?帮助为准对映。
| 能力 | 典型开关(示例命名) | 作用与要点 |
|---|---|---|
| 接受协议 | -accepteula |
首次静默接受 EULA,便于无人值守。 |
| 立即开始/停止 | /start、/stop |
启动后立刻捕获;脚本尾部调用 /stop 收官。 |
| 设定时长 | /duration:<mm:ss> 或 /runfor:<seconds> |
指定持续时间,到时自动停止并保存。 |
| 过滤器 | /loadfilter:<path>、/savefilter:<path> |
复用 GUI 里保存的过滤规则;统一团队视图。 |
| 输出格式 | `/save:<.session | .csv |
| 列集/视图 | /view:<path> |
载入列顺序、强调色、分组等视图模板。 |
| 时间设置 | /utc 或 /localtime |
统一导出 UTC;口头沟通再换本地时区。 |
| 文件切片 | /maxsize:<MB>、/autosplit |
控制大文件体积,滚动切片保存。 |
| 采样/性能 | `/profiling:<on | off>、/buffers:` |
| 提示静默 | /quiet |
无窗口/静默运行(配合计划任务)。 |
心法:少即是多。预设过滤 + 固定列集 + UTC 时间 + 切片策略,能让协作和复盘成本陡降。
模板一:30 分钟抓取 + 双轨落盘(会话 + TSV)
PowerShell:
powershell
$tool = "C:\Tools\AdInsight\AdInsight.exe"
$outDir = "D:\AdInsight\captures\$(Get-Date -Format yyyyMMdd_HHmmss)"
New-Item $outDir -ItemType Directory -Force | Out-Null
$session = Join-Path $outDir "adinsight.session"
$data = Join-Path $outDir "adinsight.tsv"
$filter = "C:\Tools\AdInsight\filters\LoginSlow.json"
$view = "C:\Tools\AdInsight\views\OpsView.json"
Start-Process -FilePath $tool -ArgumentList @(
"-accepteula",
"/start",
"/duration:00:30:00",
"/loadfilter:`"$filter`"",
"/view:`"$view`"",
"/utc",
"/maxsize:256",
"/autosplit",
"/save:`"$session`"",
"/save:`"$data`""
) -Wait
# 可选:计算校验和,便于取证留痕
Get-ChildItem $outDir | Get-FileHash -Algorithm SHA256 | `
Format-Table Path, Hash | Out-String | Set-Content (Join-Path $outDir "sha256sum.txt")
模板二:登录波峰"时间窗"抓包(计划任务)
触发器 :工作日 08:55 启动,抓 20 分钟。
操作 :Program 指向 AdInsight.exe,参数:
-accepteula /start /duration:00:20:00 /utc /loadfilter:"C:\Filters\BindAndSearch.json" /save:"D:\AD\Morning.session" /save:"D:\AD\Morning.tsv"
结合"任务计划程序"的按需运行,就能把高峰抓取做成常规体检。
模板三:长时间运行 + 自动切片(滚动留痕)
CMD:
cmd
set TOOL=C:\Tools\AdInsight\AdInsight.exe
set OUT=D:\AdInsight\rolling
if not exist "%OUT%" mkdir "%OUT%"
"%TOOL%" -accepteula /start /utc /loadfilter:"C:\Filters\ErrorsOnly.json" ^
/maxsize:128 /autosplit /save:"%OUT%\rolling.session" /save:"%OUT%\rolling.tsv"
用
maxsize + autosplit避免单文件爆炸;配合计划任务定时清理 7 天前切片。
模板四:批量采集(多服务器统一收集)
一台"跳板机"远程触发各成员服务器的 AdInsight(建议以域控播放脚本,权限合规且留痕完备)。
powershell
$servers = Get-Content .\gc_list.txt # 每行一个 GC/DC 名称
$tool = "C:\Tools\AdInsight\AdInsight.exe"
$filter = "\\share\filters\OpsBaseline.json"
$view = "\\share\views\TeamView.json"
$baseOut = "\\share\captures\$(Get-Date -Format yyyyMMdd_HHmmss)"
foreach ($s in $servers) {
Invoke-Command -ComputerName $s -ScriptBlock {
param($tool,$filter,$view,$baseOut,$server)
$dir = Join-Path $baseOut $server
New-Item $dir -ItemType Directory -Force | Out-Null
Start-Process -FilePath $tool -ArgumentList @(
"-accepteula","/start","/duration:00:10:00","/utc",
"/loadfilter:`"$filter`"","/view:`"$view`"",
"/save:`"$dir\capture.session`"","/save:`"$dir\capture.tsv`""
) -Wait
} -ArgumentList $tool,$filter,$view,$baseOut,$s
}
模板五:事件现场"一条龙"打包上送
PowerShell:
powershell
$out = "D:\AdInsight\incident\$(Get-Date -Format yyyyMMdd_HHmmss)"
New-Item $out -ItemType Directory -Force | Out-Null
# 1) 采集
& "C:\Tools\AdInsight\AdInsight.exe" -accepteula /start /duration:00:15:00 /utc `
/loadfilter:"C:\Filters\Incident.json" `
/save:"$out\incident.session" /save:"$out\incident.tsv"
# 2) 校验
Get-ChildItem $out | Get-FileHash -Algorithm SHA256 |
Export-Csv "$out\sha256.csv" -NoTypeInformation -Encoding UTF8
# 3) 打包
Compress-Archive -Path "$out\*" -DestinationPath "$out.zip" -Force
过滤器与视图的团队协作
- 过滤器(Filter) :把"我们关心什么"固化成文件并版本化(如
Bind/Modify/Search、错误码白名单等)。 - 视图(View):把"我们怎么看"固化(列顺序、强调色、分组、时间精度)。
- 共享规则 :
filters/与views/放统一共享盘,配合 Git 做审计与回滚。
输出与命名规范(可直接抄)
AdInsight_[CASE-YYYYMMDD]_Site-[EastGC]_Win-[2019]_UTC-[0900-0930]_[Filtered-Bind].tsv
AdInsight_[CASE-YYYYMMDD]_Full.session
Filters_[LoginSlow]_v3.json
View_[OpsBaseline]_v2.json
- 用 UTC 时间窗 、站点/角色 、是否过滤 、版本号 让文件一眼可懂。
与计划任务/EDR 的配合
- 计划任务:触发器 = 时间/登录/开机;操作 = 传参启动;条件 = 市电/网络可用。
- EDR/AV 白名单:允许 AdInsight 可执行文件与输出目录;避免运行期被阻断。
- 最小权限:仅在必要服务器上以批准账户运行,日志留痕。
常见坑与规避
- 忘加
-accepteula→ 无人值守下卡在 EULA 弹窗。 - 抓太久无切片 → 单文件巨无霸,Excel/脚本都吃不动;务必
maxsize + autosplit。 - 时区混乱 → 统一
/utc导出;共享时再转换本地时间。 - 只导出过滤后数据 → 证据链不完整;请同时 保留
.session全量会话。
结语
命令行把 AdInsight 从"手艺活"升级为"流水线"。上面 5 套模板覆盖了日常长跑、时间窗、批量、事故一条龙等主战场。下一篇我们收尾 AdRestore ,讲清意外删除对象的恢复 与快照对比,把 AD 救援链条补齐。