输出格式
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /cn/docs/02-output-formats/index.md.
Convert-DNSDebugLogFile 每个输入日志最多生成三个文件:
| 文件 | 内容 | 生成条件 |
|---|---|---|
<name>.csv | 每个解析的日志条目一行 | -OutputType CSV 或 Both |
<name>_Statistic.csv | 每个上下文的每日记录计数 | -OutputType Statistic 或 Both |
<name>_PacketStatistic.csv | 每个客户端、协议、方向和记录类型的每日查询计数 | -OutputType Statistic 或 Both |
Both 是默认值。输出文件会放在输入文件旁边,除非你设置了 -OutputFile。
本页链接的示例文件是真实的转换结果,而非模拟。下载一个并用 Excel 打开,确认后再设计你的管道。
CSV 数据文件
示例输出:
| 语言环境 | Details 列 | 文件 |
|---|---|---|
| en-US | 未填充 | WithComputerName, NoComputerName |
| de-DE | 未填充 | WithComputerName, NoComputerName |
| de-DE | 已填充 | WithComputerName, NoComputerName |
真实转换的两行示例——一个 DNS 查询和一个服务器内部备注:
DateTime;ThreadId;Context;PacketId;Protocol;Direction;ClientIP;Xid;Type;Opcode;FlagsHex;FlagsChar;ResponseCode;QuestionType;QuestionName;Information;Details;ComputerName
2026-01-20 23:00:16;0FE0;Packet;000002C53117D990;UDP;Rcv;10.0.0.2;c049;Query;Standard;0001;RecursionDesired;NOERROR;A;"odc.officeapps.live.com";"";"";dc01
2026-01-20 23:00:16;DF0;Note;;;;;;;;;;;;"";"got GQCS failure on a dead socket context status=995, socket=904";"";dc01
列说明
始终有 18 列,且顺序固定:
| # | 列名 | 含义 | 典型用途 |
|---|---|---|---|
| 1 | DateTime | 条目时间戳 | 时间过滤,与其他日志关联 |
| 2 | ThreadId | DNS 服务器工作线程 | 很少用;用于关联服务器内部问题 |
| 3 | Context | 条目类型:Packet、Event、Note、DSPoll、Init、Lookup、Recurse、Remote、Tombstone | 首个过滤条件——Packet 是实际的 DNS 流量 |
| 4 | PacketId | 内部数据包标识符 | 配对查询与响应 |
| 5 | Protocol | UDP 或 TCP | TCP 峰值可能表示大响应或区域传输 |
| 6 | Direction | Rcv(接收查询)或 Snd(服务器响应) | 区分请求量和响应量 |
| 7 | ClientIP | 查询主机地址 | 主要流量分析,事件范围界定 |
| 8 | Xid | DNS 事务 ID(十六进制) | 匹配请求和响应 |
| 9 | Type | Query 或 Response | |
| 10 | Opcode | Standard、Notify、Update、Unknown | 区分动态更新和区域通知与普通查询 |
| 11 | FlagsHex | 原始头标志(十六进制) | 深度协议分析 |
| 12 | FlagsChar | 解码标志:Authoritative、Truncated、RecursionDesired、RecursionAvailable | 上述标志的可读版本 |
| 13 | ResponseCode | NOERROR、NXDOMAIN、SERVFAIL 等 | 错误率报告,解析失败排查 |
| 14 | QuestionType | 记录类型:A、AAAA、MX、PTR、TXT 等 | TXT 量是经典的隧道指标 |
| 15 | QuestionName | 查询名称,标准 FQDN | 威胁情报匹配,顶级域报告 |
| 16 | Information | Event / Note 的自由文本;Packet 细节块的 TCP/UDP 头行 | 读取服务器消息 |
| 17 | Details | Packet 细节块的 JSON 表示;否则为空 | 无需回查原始日志即可完整包检查 |
| 18 | ComputerName | 来源服务器,来自 -ComputerName 参数 | 保持多服务器数据集可归属 |
需要注意两点:
- 并非每行每列都有数据。 只有
Packet条目有客户端 IP、查询名称和响应码。Note和Event行的文本在Information中,协议相关列为空。请据此设计数据库结构和仪表盘过滤器。 ComputerName总是最后一列,即使未使用-ComputerName参数。 此时该列为空。这样所有服务器的布局一致,方便合并多个 DNS 服务器的文件,无需列映射。
Details 列
只有当 DNS 服务器配置为记录完整包细节时,才会出现细节块。存在时,解析器将其转换为单个 JSON 值,使该行仍为一行:
{
"Socket": "848",
"Remote": "addr 10.10.0.11, port 60580",
"Buflength": "0x10000 (65536)",
"Message": {
"XID": "0x0001",
"OPCODE": "0 (QUERY)",
"RCODE": "0 (NOERROR)",
"QUESTION": [ { "Name": "berlin.de", "QTYPE": "A (1)", "QCLASS": "1" } ],
"ANSWER": []
}
}
解析这些块会消耗时间并显著增加 CSV 文件大小。如果不需要,使用 -NoDetailsParsing 参数——该列仍存在但为空,转换速度更快。详见性能。
统计文件
统计是每日汇总。当你想要趋势或汇总数据,而不想移动完整记录集时使用——它们比数据文件小几个数量级。
上下文统计(*_Statistic.csv)
回答:每天发生了多少种类的活动?
Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
| 列名 | 含义 |
|---|---|
Date | 日期,格式固定为 yyyy-MM-dd |
Context | 上下文名称(Packet、Event、Note 等) |
Count | 当天该上下文的记录数 |
ComputerName | 来源服务器 |
示例文件:en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
包统计(*_PacketStatistic.csv)
回答:谁查询了什么,频率如何,每天?
Date;ClientIP;Protocol;Direction;QuestionType;Count;ComputerName
2026-01-20;10.0.0.1;UDP;Rcv;A;3;dc01
2026-01-20;10.0.0.1;UDP;Snd;A;3;dc01
2026-01-20;10.0.0.2;UDP;Rcv;A;3;dc01
| 列名 | 含义 |
|---|---|
Date | 日期,格式固定为 yyyy-MM-dd |
ClientIP | 查询主机 |
Protocol | UDP 或 TCP |
Direction | Rcv 或 Snd |
QuestionType | DNS 记录类型 |
Count | 当天匹配包的数量 |
ComputerName | 来源服务器 |
示例文件:en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
Count 是该日分组内的记录总数。一个客户端查询同一名称 500 次,计数就是 500,而非 1。如果数字看起来过高,通常是这个原因。
分隔符和日期格式
两种输出类型都支持 -Delimiter(默认 ;)和 -OutputCulture。对于机器导入,建议使用类似 ISO 的时间戳格式:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
这会生成 2026-01-20 23:00:16,SQL Server、Power BI 和 pandas 都能无格式提示正确读取。详情见参数和选项。