<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DNSServer.DebugLogParser on PowerShell 模块 DNSServer.DebugLogParser</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/</link><description>Recent content in DNSServer.DebugLogParser on PowerShell 模块 DNSServer.DebugLogParser</description><generator>Hugo</generator><language>cn</language><lastBuildDate>Fri, 24 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://DNSServerDebugLogParser.andibellstedt.com/cn/index.xml" rel="self" type="application/rss+xml"/><item><title>概述</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/01-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/01-overview/</guid><description>&lt;p&gt;Windows DNS 服务器可以写入调试日志。它是一个纯文本文件，设计供人类阅读，在繁忙的域控制器上每天会增长数百兆字节。这样的组合使得当你想回答诸如*“昨晚哪个客户端查询了这个域名 40,000 次？”*这样的问题时，几乎毫无用处。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DNSServer.DebugLogParser&lt;/strong&gt; 将该文本文件转换为 CSV 表格。一条日志行变成一行带有命名列的记录，这样你就可以用 Excel 打开它，加载到 Power BI，批量插入到 SQL Server，或者发送到你的 SIEM。&lt;/p&gt;
&lt;p&gt;该模块包含一个命令：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Convert-DNSDebugLogFile -InputFile &amp;quot;C:\Windows\System32\dns\dns.log&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这就是整个入口点。本站的其他内容都是关于如何大规模、定时以及跨多台服务器执行转换。&lt;/p&gt;
&lt;h2 id="dns-调试日志的样子"&gt;DNS 调试日志的样子&lt;/h2&gt;
&lt;p&gt;原始条目是一行带有位置字段的文本，其中一些字段用括号括起来：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;2026-01-20 23:00:16 0FE0 PACKET 000002C53117D990 UDP Rcv 10.0.0.2 c049 Q [0001 D NOERROR] A (3)odc(9)officeapps(4)live(3)com(0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;转换后，同一事件变成可筛选和排序的 CSV 行：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;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;&amp;quot;odc.officeapps.live.com&amp;quot;;&amp;quot;&amp;quot;;&amp;quot;&amp;quot;;dc01
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意原始格式难以处理而解析器帮你处理的两点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查询的名称以 DNS 线格式存储，即 &lt;code&gt;(3)odc(9)officeapps(4)live(3)com(0)&lt;/code&gt;，转换后变成正常的 FQDN。&lt;/li&gt;
&lt;li&gt;一个事件不总是单行。&lt;code&gt;PACKET&lt;/code&gt; 详情块和事件消息会继续出现在缩进的后续行。解析器会将它们附加到所属记录，而不是丢弃或生成孤立行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每条记录最多包含 16 个原生字段——时间戳、协议、方向、客户端 IP、查询类型、查询名称、响应代码、标志等。完整列列表详见&lt;a href="../02-output-formats/"&gt;输出格式&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="为什么要转换"&gt;为什么要转换&lt;/h2&gt;
&lt;h3 id="故障排除"&gt;故障排除&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;查明名称无法解析的原因，以及查询是否到达服务器&lt;/li&gt;
&lt;li&gt;识别配置错误的客户端或频繁请求服务器的应用&lt;/li&gt;
&lt;li&gt;跟踪问题查询的实际来源&lt;/li&gt;
&lt;li&gt;验证区域传送和 DNS 的整体行为&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="性能与容量"&gt;性能与容量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;按查询量排名客户端，找出“吵闹”的客户端&lt;/li&gt;
&lt;li&gt;查看哪些记录类型主导流量&lt;/li&gt;
&lt;li&gt;发现导致不必要查询的配置错误&lt;/li&gt;
&lt;li&gt;跟踪服务器负载变化，而不是凭猜测&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="安全分析"&gt;安全分析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;检测 DNS 隧道和数据外泄（通常表现为过多的 &lt;code&gt;TXT&lt;/code&gt; 流量——参见&lt;a href="../examples/security-analysis-sql/"&gt;SQL Server 分析示例&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;查找针对恶意软件和指挥控制域的查询&lt;/li&gt;
&lt;li&gt;识别被攻陷主机的查询模式&lt;/li&gt;
&lt;li&gt;监控 DNS 放大攻击滥用&lt;/li&gt;
&lt;li&gt;重建事件发生过程&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="合规与审计"&gt;合规与审计&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;满足日志记录和保留要求&lt;/li&gt;
&lt;li&gt;保持网络活动的审计轨迹&lt;/li&gt;
&lt;li&gt;为管理层或审计员生成报告&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="模块工作原理"&gt;模块工作原理&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 以流方式读取日志并以流方式写入 CSV。文件从未整体加载到内存，因此 100 MB 的日志消耗的内存大致与 10 MB 的日志相同。详情见&lt;a href="../04-performance/"&gt;性能&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>输出格式</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/02-output-formats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/02-output-formats/</guid><description>&lt;p&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 每个输入日志最多生成三个文件：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;文件&lt;/th&gt;
					&lt;th&gt;内容&lt;/th&gt;
					&lt;th&gt;生成条件&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每个解析的日志条目一行&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType CSV&lt;/code&gt; 或 &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;_Statistic.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每个上下文的每日记录计数&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType Statistic&lt;/code&gt; 或 &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;_PacketStatistic.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每个客户端、协议、方向和记录类型的每日查询计数&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType Statistic&lt;/code&gt; 或 &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;Both&lt;/code&gt; 是默认值。输出文件会放在输入文件旁边，除非你设置了 &lt;code&gt;-OutputFile&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;本页链接的示例文件是真实的转换结果，而非模拟。下载一个并用 Excel 打开，确认后再设计你的管道。&lt;/p&gt;
&lt;h2 id="csv-数据文件"&gt;CSV 数据文件&lt;/h2&gt;
&lt;p&gt;示例输出：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;语言环境&lt;/th&gt;
					&lt;th&gt;Details 列&lt;/th&gt;
					&lt;th&gt;文件&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;en-US&lt;/td&gt;
					&lt;td&gt;未填充&lt;/td&gt;
					&lt;td&gt;&lt;a href="../outputformat/en-us.-.dnsdebug-dc01.-.WithComputerName.csv"&gt;WithComputerName&lt;/a&gt;, &lt;a href="../outputformat/en-us.-.dnsdebug-dc01.-.NoComputerName.csv"&gt;NoComputerName&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;de-DE&lt;/td&gt;
					&lt;td&gt;未填充&lt;/td&gt;
					&lt;td&gt;&lt;a href="../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.NoDetails.csv"&gt;WithComputerName&lt;/a&gt;, &lt;a href="../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.NoDetails.csv"&gt;NoComputerName&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;de-DE&lt;/td&gt;
					&lt;td&gt;已填充&lt;/td&gt;
					&lt;td&gt;&lt;a href="../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.WithDetails.csv"&gt;WithComputerName&lt;/a&gt;, &lt;a href="../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.WithDetails.csv"&gt;NoComputerName&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;真实转换的两行示例——一个 DNS 查询和一个服务器内部备注：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-text"&gt;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;&amp;quot;odc.officeapps.live.com&amp;quot;;&amp;quot;&amp;quot;;&amp;quot;&amp;quot;;dc01
2026-01-20 23:00:16;DF0;Note;;;;;;;;;;;;&amp;quot;&amp;quot;;&amp;quot;got GQCS failure on a dead socket context status=995, socket=904&amp;quot;;&amp;quot;&amp;quot;;dc01
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="列说明"&gt;列说明&lt;/h3&gt;
&lt;p&gt;始终有 18 列，且顺序固定：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;#&lt;/th&gt;
					&lt;th&gt;列名&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;典型用途&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;DateTime&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;条目时间戳&lt;/td&gt;
					&lt;td&gt;时间过滤，与其他日志关联&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ThreadId&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;DNS 服务器工作线程&lt;/td&gt;
					&lt;td&gt;很少用；用于关联服务器内部问题&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Context&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;条目类型：&lt;code&gt;Packet&lt;/code&gt;、&lt;code&gt;Event&lt;/code&gt;、&lt;code&gt;Note&lt;/code&gt;、&lt;code&gt;DSPoll&lt;/code&gt;、&lt;code&gt;Init&lt;/code&gt;、&lt;code&gt;Lookup&lt;/code&gt;、&lt;code&gt;Recurse&lt;/code&gt;、&lt;code&gt;Remote&lt;/code&gt;、&lt;code&gt;Tombstone&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;首个过滤条件——&lt;code&gt;Packet&lt;/code&gt; 是实际的 DNS 流量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PacketId&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;内部数据包标识符&lt;/td&gt;
					&lt;td&gt;配对查询与响应&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Protocol&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;UDP&lt;/code&gt; 或 &lt;code&gt;TCP&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;TCP 峰值可能表示大响应或区域传输&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Direction&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Rcv&lt;/code&gt;（接收查询）或 &lt;code&gt;Snd&lt;/code&gt;（服务器响应）&lt;/td&gt;
					&lt;td&gt;区分请求量和响应量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;7&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ClientIP&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;查询主机地址&lt;/td&gt;
					&lt;td&gt;主要流量分析，事件范围界定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;8&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Xid&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;DNS 事务 ID（十六进制）&lt;/td&gt;
					&lt;td&gt;匹配请求和响应&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;9&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Type&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Query&lt;/code&gt; 或 &lt;code&gt;Response&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;10&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Opcode&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Standard&lt;/code&gt;、&lt;code&gt;Notify&lt;/code&gt;、&lt;code&gt;Update&lt;/code&gt;、&lt;code&gt;Unknown&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;区分动态更新和区域通知与普通查询&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;11&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;FlagsHex&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;原始头标志（十六进制）&lt;/td&gt;
					&lt;td&gt;深度协议分析&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;12&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;FlagsChar&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;解码标志：&lt;code&gt;Authoritative&lt;/code&gt;、&lt;code&gt;Truncated&lt;/code&gt;、&lt;code&gt;RecursionDesired&lt;/code&gt;、&lt;code&gt;RecursionAvailable&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;上述标志的可读版本&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;13&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ResponseCode&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;NOERROR&lt;/code&gt;、&lt;code&gt;NXDOMAIN&lt;/code&gt;、&lt;code&gt;SERVFAIL&lt;/code&gt; 等&lt;/td&gt;
					&lt;td&gt;错误率报告，解析失败排查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;14&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;QuestionType&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;记录类型：&lt;code&gt;A&lt;/code&gt;、&lt;code&gt;AAAA&lt;/code&gt;、&lt;code&gt;MX&lt;/code&gt;、&lt;code&gt;PTR&lt;/code&gt;、&lt;code&gt;TXT&lt;/code&gt; 等&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;TXT&lt;/code&gt; 量是经典的隧道指标&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;15&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;QuestionName&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;查询名称，标准 FQDN&lt;/td&gt;
					&lt;td&gt;威胁情报匹配，顶级域报告&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;16&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Information&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Event&lt;/code&gt; / &lt;code&gt;Note&lt;/code&gt; 的自由文本；&lt;code&gt;Packet&lt;/code&gt; 细节块的 TCP/UDP 头行&lt;/td&gt;
					&lt;td&gt;读取服务器消息&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;17&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Details&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Packet&lt;/code&gt; 细节块的 JSON 表示；否则为空&lt;/td&gt;
					&lt;td&gt;无需回查原始日志即可完整包检查&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;18&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ComputerName&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;来源服务器，来自 &lt;code&gt;-ComputerName&lt;/code&gt; 参数&lt;/td&gt;
					&lt;td&gt;保持多服务器数据集可归属&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;需要注意两点：&lt;/p&gt;</description></item><item><title>参数和选项</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/03-parameters-and-options/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/03-parameters-and-options/</guid><description>&lt;p&gt;本页以通俗语言解释各选项，且按你通常需要的顺序排列。它是指南，不是规范——权威且始终最新的参数列表在&lt;a href="../commands/convert-dnsdebuglogfile/"&gt;命令参考&lt;/a&gt;和：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-Help Convert-DNSDebugLogFile -Full
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="简短版"&gt;简短版&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Convert-DNSDebugLogFile -InputFile &amp;quot;C:\Logs\dns.log&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这单行命令已经给你合理的行为：同时生成数据和统计文件，分隔符为分号，使用你机器的日期格式，启用头部验证，源日志不变。以下内容是微调。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;选项&lt;/th&gt;
					&lt;th&gt;默认值&lt;/th&gt;
					&lt;th&gt;何时更改&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-InputFile&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;em&gt;(必需)&lt;/em&gt;&lt;/td&gt;
					&lt;td&gt;始终&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-OutputFile&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;输入路径，扩展名为 &lt;code&gt;.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;你想输出到其他位置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-Delimiter&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;你的消费者期望逗号、制表符或管道符&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-ComputerName&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;空&lt;/td&gt;
					&lt;td&gt;你合并多个服务器的日志&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-OutputType&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;你只想要数据，或只要汇总&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-ContextFilter&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;All&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;你只关心实际的 DNS 流量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-InputCulture&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;当前文化&lt;/td&gt;
					&lt;td&gt;日志来自不同区域设置的服务器&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-OutputCulture&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;当前文化&lt;/td&gt;
					&lt;td&gt;机器将读取 CSV&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-NoDetailsParsing&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;关闭&lt;/td&gt;
					&lt;td&gt;吞吐量比数据包内部细节更重要&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-CompressOutput&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;关闭&lt;/td&gt;
					&lt;td&gt;你归档或传输结果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-RemoveSourceFile&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;关闭&lt;/td&gt;
					&lt;td&gt;定时清理，且你信任输出&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-SkipHeaderValidation&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;关闭&lt;/td&gt;
					&lt;td&gt;文件有效但头部不寻常&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="输入和输出"&gt;输入和输出&lt;/h2&gt;
&lt;h3 id="-inputfile"&gt;-InputFile&lt;/h3&gt;
&lt;p&gt;要转换的日志路径。接受数组，也接受管道输入——这就是为什么下面这样写有效：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-ChildItem &amp;quot;C:\Administration\Logs\DNSServer\*.log&amp;quot; | Convert-DNSDebugLogFile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Get-ChildItem&lt;/code&gt; 输出带有 &lt;code&gt;FullName&lt;/code&gt; 属性的对象，&lt;code&gt;-InputFile&lt;/code&gt; 通过属性名接受它（别名包括 &lt;code&gt;FullName&lt;/code&gt;、&lt;code&gt;Path&lt;/code&gt;、&lt;code&gt;FilePath&lt;/code&gt;）。无需 &lt;code&gt;ForEach-Object&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;本地路径和 SMB/UNC 路径都支持：&lt;/p&gt;</description></item><item><title>性能</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/04-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/04-performance/</guid><description>&lt;p&gt;繁忙域控制器上的 DNS 调试日志文件很大。&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 就是为这种情况设计的：它已经经过测试，能够处理 100 MB 及以上的日志，并且在普通服务器硬件上几分钟内完成处理。&lt;/p&gt;
&lt;h2 id="为什么它很快"&gt;为什么它很快&lt;/h2&gt;
&lt;p&gt;你不需要了解这些细节就能使用该模块，但了解这些可以解释你观察到的行为。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;技术&lt;/th&gt;
					&lt;th&gt;你会注意到的效果&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;使用带有 64 KB 缓冲区的 &lt;code&gt;StreamReader&lt;/code&gt; / &lt;code&gt;StreamWriter&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件以块的形式读取和写入，而不是一次性用 &lt;code&gt;Get-Content&lt;/code&gt; 读取整个文件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;流式处理，单次遍历&lt;/td&gt;
					&lt;td&gt;无论日志多大，内存使用量基本保持平稳&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;使用字符串操作（&lt;code&gt;.Substring()&lt;/code&gt;、&lt;code&gt;.IndexOf()&lt;/code&gt;）代替正则表达式&lt;/td&gt;
					&lt;td&gt;每行 CPU 使用率显著降低，而日志行数以百万计&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;手动写入 CSV 而非使用 &lt;code&gt;Export-Csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每条记录没有对象管道的开销&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;基于哈希表的统计聚合&lt;/td&gt;
					&lt;td&gt;在同一次遍历中，汇总几乎不额外消耗资源&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;重要的结果是：&lt;strong&gt;整个日志文件从未全部加载到内存中。&lt;/strong&gt; 一个 500 MB 的日志不需要 500 MB 的内存。这就是该模块与大多数自制脚本“读取文件、拆分、构建对象”方法的区别——后者在处理 5 MB 样本时表现良好，但在真实的域控制器日志上会崩溃。&lt;/p&gt;
&lt;h2 id="如何最大化运行效率"&gt;如何最大化运行效率&lt;/h2&gt;
&lt;h3 id="转换轮换的日志块而不是一个巨大的文件"&gt;转换轮换的日志块，而不是一个巨大的文件&lt;/h3&gt;
&lt;p&gt;配置 DNS 服务器在可控大小时滚动日志——50 到 200 MB 是个不错的范围。多个中等大小的文件转换时间可预测，且允许计划任务在时间窗口内完成。而一个不断增长的文件最终会拖慢速度。&lt;/p&gt;
&lt;p&gt;日志轮换还会生成已关闭的文件，这正是你想要的：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-ChildItem &amp;quot;C:\Administration\Logs\DNSServer\*.log&amp;quot; |
 Sort-Object LastWriteTime -Descending |
 Select-Object -Skip 1 |
 Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="不需要详细解析时跳过"&gt;不需要详细解析时跳过&lt;/h3&gt;
&lt;p&gt;如果 DNS 服务器写入了完整的数据包详情，将这些块转换为 JSON 是转换过程中最耗时的部分。&lt;/p&gt;</description></item><item><title>与分析工具的集成</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/05-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/05-integration/</guid><description>&lt;p&gt;转换 DNS 调试日志的意义在于后续的处理。选择 CSV 是因为几乎所有工具都能读取它——但“所有工具都能读 CSV”背后隐藏着两个设置，这两个设置决定了导入是轻松完成还是要折腾一下午。&lt;/p&gt;
&lt;h2 id="决定一切的两个设置"&gt;决定一切的两个设置&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;分隔符。&lt;/strong&gt; 默认是 &lt;code&gt;;&lt;/code&gt;。对于使用逗号作为小数点的 Excel 区域设置，保持默认即可。对于大多数数据库和数据科学工具，切换为 &lt;code&gt;,&lt;/code&gt;。无论选择哪个，都要确保导入端使用相同的设置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;日期格式。&lt;/strong&gt; &lt;code&gt;-OutputCulture&lt;/code&gt; 控制时间戳的写入格式。对于机器读取的任何内容，使用 &lt;code&gt;sv-SE&lt;/code&gt;（或不变文化），这样 &lt;code&gt;DateTime&lt;/code&gt; 会输出为 &lt;code&gt;2026-01-20 23:00:16&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Convert-DNSDebugLogFile -InputFile &amp;quot;C:\Logs\dns.log&amp;quot; -OutputCulture 'sv-SE'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下面所有消费者都能无提示地理解该格式。区域特定的输出如 &lt;code&gt;20.01.2026&lt;/code&gt; 会被导入为文本，或者更糟，被误读为月/日格式。&lt;/p&gt;
&lt;h2 id="microsoft-excel"&gt;Microsoft Excel&lt;/h2&gt;
&lt;p&gt;查看单个转换日志的最快方式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用默认的 &lt;code&gt;;&lt;/code&gt; 分隔符且区域设置匹配时，双击文件即可正确分列打开。&lt;/li&gt;
&lt;li&gt;如果所有内容都落在 A 列，说明分隔符与 Excel 设置不匹配。可以重新运行时加上 &lt;code&gt;-Delimiter &amp;quot;,&amp;quot;&lt;/code&gt;，或者通过 &lt;strong&gt;数据 → 从文本/CSV&lt;/strong&gt; 导入时选择正确的分隔符。&lt;/li&gt;
&lt;li&gt;将区域转换为表格（&lt;code&gt;Ctrl+T&lt;/code&gt;），然后基于 &lt;code&gt;ClientIP&lt;/code&gt;、&lt;code&gt;QuestionName&lt;/code&gt; 或 &lt;code&gt;QuestionType&lt;/code&gt; 创建数据透视表。找出最活跃的客户端和域名只需一分钟。&lt;/li&gt;
&lt;li&gt;超过几十万行时，建议使用 Power Query 或下面介绍的其他选项。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;*_Statistic.csv&lt;/code&gt; 和 &lt;code&gt;*_PacketStatistic.csv&lt;/code&gt; 文件通常是更好的 Excel 目标——它们是预聚合的，文件体积小。详见&lt;a href="../02-output-formats/"&gt;输出格式&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="power-bi"&gt;Power BI&lt;/h2&gt;
&lt;p&gt;导入 CSV 文件，构建 DNS 活动、顶级客户端、查询趋势和错误率的仪表盘。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指向包含转换文件的&lt;em&gt;文件夹&lt;/em&gt;，而非单个文件。不同服务器和日期的布局相同，文件会自动追加。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ComputerName&lt;/code&gt; 列使多服务器报告成为可能——转换时设置 &lt;code&gt;-ComputerName&lt;/code&gt;，否则无法按服务器切片。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ResponseCode&lt;/code&gt; 和 &lt;code&gt;QuestionType&lt;/code&gt; 是自然的切片字段；&lt;code&gt;DateTime&lt;/code&gt; 作为时间轴。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;*_PacketStatistic.csv&lt;/code&gt; 而非完整数据文件，可以在只需日趋势时保持模型体积小。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sql-数据库"&gt;SQL 数据库&lt;/h2&gt;
&lt;p&gt;将 CSV 批量导入 SQL Server、PostgreSQL 或其他支持 SQL 的数据库，实现长期存储和可重复查询。&lt;/p&gt;</description></item><item><title>运营最佳实践</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/06-operational-best-practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/06-operational-best-practices/</guid><description>&lt;p&gt;手动转换日志很简单。关键是如何设计，让它能每晚在每个域控制器上运行多年而无人干预。这些是实践中重要的点。&lt;/p&gt;
&lt;h2 id="1-转换已轮换的日志而非活动日志"&gt;1. 转换已轮换的日志，而非活动日志&lt;/h2&gt;
&lt;p&gt;在 DNS 服务器上启用日志轮换，只转换已关闭的文件。模块&lt;em&gt;可以&lt;/em&gt;读取 DNS 服务器当前正在写入的日志，但该文件在转换过程中会发生变化：最新的条目可能缺失，最后一条记录可能被截断。两次运行会产生不同的结果。&lt;/p&gt;
&lt;p&gt;标准做法是跳过最新的文件：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-ChildItem &amp;quot;C:\Administration\Logs\DNSServer\*.log&amp;quot; |
 Sort-Object LastWriteTime -Descending |
 Select-Object -Skip 1 |
 Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
&lt;/code&gt;&lt;/pre&gt;
&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;切勿将活动日志与 -RemoveSourceFile 一起使用&lt;/div&gt;
&lt;p&gt;删除 DNS 服务器仍在写入的文件，事后发现会很糟糕。请将 &lt;code&gt;-RemoveSourceFile&lt;/code&gt; 限制在已轮换、已关闭的日志上。&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;需要权衡的是：在低流量服务器上，轮换可能超过一天，因此当天的数据会一直未转换，直到文件轮换。请据此调整轮换阈值。&lt;/p&gt;
&lt;h2 id="2-计划任务并赋予合适的身份运行"&gt;2. 计划任务，并赋予合适的身份运行&lt;/h2&gt;
&lt;p&gt;任务计划程序是常用方案——每天运行是合理的默认。针对域控制器的完整组策略实现，请参见 &lt;a href="../examples/gpo-driven-collection/"&gt;基于 GPO 的收集示例&lt;/a&gt;，独立任务示例见 &lt;a href="../examples/scheduletask/"&gt;计划任务示例&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;这里常见的三个坑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模块可发现性。&lt;/strong&gt; 以 &lt;code&gt;SYSTEM&lt;/code&gt; 身份运行且带 &lt;code&gt;-NoProfile&lt;/code&gt; 的任务只会看到机器范围的模块路径。请将模块安装为机器范围，或在任务动作中显式添加 &lt;code&gt;Import-Module&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;区域设置。&lt;/strong&gt; 运行任务的账户可能没有你交互测试时的区域设置。请显式设置 &lt;code&gt;-InputCulture&lt;/code&gt; 和 &lt;code&gt;-OutputCulture&lt;/code&gt;，不要依赖默认值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络访问。&lt;/strong&gt; 如果源或目标是 UNC 路径，&lt;code&gt;SYSTEM&lt;/code&gt; 会以计算机账户身份认证。请授予计算机账户（或 &lt;code&gt;Domain Controllers&lt;/code&gt; 组）共享和 NTFS 权限，或使用专用服务账户运行任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-轮换到你能处理的大小"&gt;3. 轮换到你能处理的大小&lt;/h2&gt;
&lt;p&gt;每个文件 50–200 MB 让转换可预测，且夜间任务能在时间窗内完成。单个文件无限增长最终会拖慢转换。详见 &lt;a href="../04-performance/"&gt;性能&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="4-自动化前先验证首批输出"&gt;4. 自动化前先验证首批输出&lt;/h2&gt;
&lt;p&gt;手动转换两三个真实日志，打开 CSV 检查：&lt;/p&gt;</description></item><item><title>故障排除</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/08-troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/08-troubleshooting/</guid><description>&lt;h2 id="该文件不是有效的-dns-调试日志文件"&gt;“该文件不是有效的 DNS 调试日志文件”&lt;/h2&gt;
&lt;p&gt;头部检查拒绝了输入。通常是路径错误——同一文件夹下的 &lt;code&gt;.log&lt;/code&gt; 文件不是 DNS 调试日志，或者文件只包含了一个轮换头部。&lt;/p&gt;
&lt;p&gt;请按以下步骤排查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;打开文件。DNS 调试日志以类似 &lt;code&gt;Message logging started at …&lt;/code&gt; 的头部行开始，后续是带时间戳的查询条目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;确认 DNS 调试日志确实已启用并写入你预期的路径：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-DnsServerDiagnostics | Select-Object Enable, LogFilePath, MaxMBFileSize
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果文件确实是 DNS 日志，但头部不寻常——手动编辑过、预过滤过、或自定义导出——可跳过检查：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Convert-DNSDebugLogFile -InputFile &amp;quot;C:\Logs\odd.log&amp;quot; -SkipHeaderValidation
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;其他地方请保持验证开启。注意 &lt;code&gt;-SkipHeaderValidation&lt;/code&gt; 不能与 &lt;code&gt;-RemoveSourceFile&lt;/code&gt; 一起使用，因此未经验证的文件转换后无法被删除。&lt;/p&gt;
&lt;h2 id="输出文件为空或行数远少于预期"&gt;输出文件为空或行数远少于预期&lt;/h2&gt;
&lt;p&gt;请按顺序检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;日志中是否包含查询条目？&lt;/strong&gt; 刚轮换的日志如果还没发生查询，可能只有头部。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;是否使用了 &lt;code&gt;-ContextFilter&lt;/code&gt;？&lt;/strong&gt; &lt;code&gt;-ContextFilter Packet&lt;/code&gt; 会移除 &lt;code&gt;Event&lt;/code&gt; 和 &lt;code&gt;Note&lt;/code&gt; 条目。如果过滤为 &lt;code&gt;Event&lt;/code&gt; 或 &lt;code&gt;Note&lt;/code&gt;，大多数列也会为空——这些条目只包含 &lt;code&gt;DateTime&lt;/code&gt;、&lt;code&gt;ThreadId&lt;/code&gt;、&lt;code&gt;Context&lt;/code&gt; 和 &lt;code&gt;Information&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;源日志是否仍在写入？&lt;/strong&gt; DNS 服务器正在写入的文件在转换时可能变化；最新条目可能缺失，最后一条记录可能被截断。需要完整输出时，请转换已轮换且关闭的日志。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件是否损坏或截断？&lt;/strong&gt; 检查日志末尾是否有半写入的行。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="日期错误偏移或日月颠倒"&gt;日期错误、偏移或日月颠倒&lt;/h2&gt;
&lt;p&gt;日志由与转换会话不同 Windows 区域设置的服务器写入。&lt;code&gt;20.01.2026&lt;/code&gt; 和 &lt;code&gt;01/20/2026&lt;/code&gt; 表示同一时间，但前提是双方对格式达成一致。&lt;/p&gt;</description></item><item><title>Convert-DNSDebugLogFile</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/commands/convert-dnsdebuglogfile/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/commands/convert-dnsdebuglogfile/</guid><description>&lt;!-- This file is auto-generated using PlatyPS + HUGO Workflow automation. Avoid editing directly! Original Front-Matter:
date: 2026-07-24
document type: cmdlet
external help file: DNSServer.DebugLogParser-Help.xml
flagTranslation: Primary
HelpUri: https://github.com/AndiBellstedt/DNSServer.DebugLogParser
Locale: en-US
Module Name: DNSServer.DebugLogParser
ms.date: 07/24/2026
PlatyPS schema version: 2024-05-01
title: Convert-DNSDebugLogFile
type: docs
--&gt;
&lt;h2 id="synopsis"&gt;SYNOPSIS&lt;/h2&gt;
&lt;p&gt;将 Windows DNS 服务器调试日志转换为结构化的 CSV 格式，便于分析和报告。&lt;/p&gt;
&lt;h2 id="syntax"&gt;SYNTAX&lt;/h2&gt;
&lt;h3 id="__allparametersets"&gt;__AllParameterSets&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Convert-DNSDebugLogFile [-InputFile] &amp;lt;string[]&amp;gt; [[-OutputFile] &amp;lt;string&amp;gt;] [[-Delimiter] &amp;lt;string&amp;gt;]
 [[-ComputerName] &amp;lt;string&amp;gt;] [[-OutputType] &amp;lt;string&amp;gt;] [[-ContextFilter] &amp;lt;string[]&amp;gt;]
 [[-InputCulture] &amp;lt;cultureinfo&amp;gt;] [[-OutputCulture] &amp;lt;cultureinfo&amp;gt;] [-SkipHeaderValidation]
 [-RemoveSourceFile] [-CompressOutput] [-NoDetailsParsing] [-WhatIf] [-Confirm]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="aliases"&gt;ALIASES&lt;/h2&gt;
&lt;p&gt;此 cmdlet 有以下别名，&lt;/p&gt;</description></item><item><title>版本说明 v1.2.2.0 (2026-07-24)</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.2.0/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.2.0/</guid><description>&lt;h2 id="新增"&gt;新增&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：支持读取当前由 DNS 服务打开的 DNS 服务器调试日志文件
&lt;ul&gt;
&lt;li&gt;允许处理活动日志文件，无需先关闭文件&lt;/li&gt;
&lt;li&gt;提升对仍在写入或被其他进程占用日志的兼容性&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意&lt;/strong&gt;：处理实时日志时需谨慎，因为记录可能不完整或处于变化中&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：支持读取源日志文件时使用 SMB/UNC 路径
&lt;ul&gt;
&lt;li&gt;允许解析器处理存储在网络共享和远程位置的文件&lt;/li&gt;
&lt;li&gt;提高集中式或共享存储环境下的可靠性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="变更"&gt;变更&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模块元数据&lt;/strong&gt;：更新 ProjectUri 和 ReleaseNotes 指向 &lt;strong&gt;官方网站 &lt;a href="https://dnsserverdebuglogparser.andibellstedt.com"&gt;https://dnsserverdebuglogparser.andibellstedt.com&lt;/a&gt;&lt;/strong&gt;，以便更好地发现和访问文档&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;修正文件访问&lt;/strong&gt;：更新底层文件打开逻辑，采用基于流的访问并显式设置共享读取选项
&lt;ul&gt;
&lt;li&gt;改善对实时日志文件和 UNC 共享等替代路径类型的处理&lt;/li&gt;
&lt;li&gt;保持本地和远程文件源的一致行为&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>版本说明 v1.2.1.0 (2026-01-26)</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.1.0/</link><pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.1.0/</guid><description>&lt;h2 id="变更内容"&gt;变更内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;性能&lt;/strong&gt;：改进了多行记录处理，避免将大文件全部加载到内存中
&lt;ul&gt;
&lt;li&gt;防止在处理超大日志文件时出现内存溢出错误&lt;/li&gt;
&lt;li&gt;继续完全支持 PACKET 详细块和缩进的续行&lt;/li&gt;
&lt;li&gt;内存使用量现在与文件大小无关，保持恒定&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进度&lt;/strong&gt;：新增 &lt;code&gt;Write-Progress&lt;/code&gt; 以反馈处理进度
&lt;ul&gt;
&lt;li&gt;进度条每处理 1000 条记录更新一次，性能影响极小&lt;/li&gt;
&lt;li&gt;显示当前记录数和正在处理的文件名称&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>版本说明 v1.2.0.0 (2026-01-25)</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.0.0/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.2.0.0/</guid><description>&lt;h2 id="新增"&gt;新增&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：DNS PACKET 详细块的多行记录处理
&lt;ul&gt;
&lt;li&gt;PACKET 上下文条目现在可以包含详细的 TCP/UDP 连接信息和 DNS 消息结构&lt;/li&gt;
&lt;li&gt;详细块被解析为结构化的 JSON 格式，存储在新的 &lt;code&gt;Details&lt;/code&gt; 列中&lt;/li&gt;
&lt;li&gt;包含：套接字信息、远程地址/端口、时序数据、消息结构（XID、Flags、QCOUNT 等）&lt;/li&gt;
&lt;li&gt;DNS 部分（QUESTION、ANSWER、AUTHORITY、ADDITIONAL）捕获完整记录详情&lt;/li&gt;
&lt;li&gt;详细块中的编码域名自动转换为 FQDN 格式&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：CSV 输出中的 &lt;code&gt;Details&lt;/code&gt; 列
&lt;ul&gt;
&lt;li&gt;包含带有详细块的 PACKET 条目的结构化 JSON 数据&lt;/li&gt;
&lt;li&gt;对于无详细信息的 PACKET 条目及所有非 PACKET 上下文，该列为空&lt;/li&gt;
&lt;li&gt;支持对 DNS 查询/响应进行深度数据包分析和取证调查&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：性能优化的 &lt;code&gt;NoDetailsParsing&lt;/code&gt; 开关参数
&lt;ul&gt;
&lt;li&gt;跳过对 PACKET 详细块的昂贵 JSON 解析&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;可提升&lt;/strong&gt;&lt;/em&gt;处理速度 &lt;strong&gt;30-50%&lt;/strong&gt;，适用于包含大量详细块的日志&lt;/li&gt;
&lt;li&gt;适合处理超大文件（100MB+）且不需要详细包结构时使用&lt;/li&gt;
&lt;li&gt;详细块仍收集于 Information 列，但 Details 列保持为空&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：非 PACKET 上下文的多行续行支持
&lt;ul&gt;
&lt;li&gt;EVENT、Note、DSPoll 等上下文现在可跨多行&lt;/li&gt;
&lt;li&gt;缩进的续行自动合并至主记录的 Information 字段&lt;/li&gt;
&lt;li&gt;保留完整的错误信息、区域更新和诊断输出&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：&lt;code&gt;ContextFilter&lt;/code&gt; 识别更多上下文类型：&lt;code&gt;DSPoll&lt;/code&gt;、&lt;code&gt;Init&lt;/code&gt;、&lt;code&gt;Lookup&lt;/code&gt;、&lt;code&gt;Recurse&lt;/code&gt;、&lt;code&gt;Remote&lt;/code&gt;、&lt;code&gt;Tombstone&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;作用：&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 现在可通过 &lt;code&gt;-ContextFilter&lt;/code&gt; 包含/排除这些诊断和生命周期条目&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：统计输出新增两个专用文件
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;_Statistic.csv&lt;/code&gt;：按日期和上下文类型的每日记录计数（Date、Context、Count、ComputerName）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_PacketStatistic.csv&lt;/code&gt;：按日期、客户端/协议/方向/类型的每日 PACKET 计数（Date、ClientIP、Protocol、Direction、QuestionType、Count、ComputerName）&lt;/li&gt;
&lt;li&gt;优势：更聚焦的报告（操作上下文量与 DNS 流量细分）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PACKET 详细块的 JSON 生成经过性能优化（手动解析替代正则）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="变更"&gt;变更&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;重大变更&lt;/strong&gt;：CSV 输出现在包含 18 列（在 &lt;code&gt;ComputerName&lt;/code&gt; 前新增 &lt;code&gt;Details&lt;/code&gt; 列）
&lt;ul&gt;
&lt;li&gt;新列顺序：DateTime、ThreadId、Context、PacketId、Protocol、Direction、ClientIP、Xid、Type、Opcode、FlagsHex、FlagsChar、ResponseCode、QuestionType、QuestionName、Information、&lt;strong&gt;Details&lt;/strong&gt;、ComputerName&lt;/li&gt;
&lt;li&gt;影响：依赖列位置的脚本需更新&lt;/li&gt;
&lt;li&gt;优势：丰富的数据包分析能力，同时不改变现有 Information 列行为&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;数据行处理重构为将所有行读入内存，以便高效检测多行记录
&lt;ul&gt;
&lt;li&gt;性能：由于优化的 List&lt;string&gt; 使用，影响极小&lt;/li&gt;
&lt;li&gt;优势：支持准确的前瞻检测详细块和续行&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;缺失或编码为空的查询名现在优雅处理（无解析错误）；CSV 输出中缺失时 QuestionName 字段为空&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="改进"&gt;改进&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 解析更健壮：更严格的行验证和改进的提取减少了格式错误日志产生的虚假/无效行，同时保持 CSV/统计输出格式&lt;/li&gt;
&lt;li&gt;PACKET 上下文检测区分简单查询和带详细块的查询&lt;/li&gt;
&lt;li&gt;无详细信息的 PACKET 条目后空行正确跳过&lt;/li&gt;
&lt;li&gt;详细块中的域名解码使用现有的 &lt;code&gt;ConvertTo-Fqdn&lt;/code&gt; 函数以保持一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="性能"&gt;性能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;对无详细块日志保持处理速度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NoDetailsParsing&lt;/code&gt; 开关在不需要 JSON 解析时提供 30-50% 的速度提升&lt;/li&gt;
&lt;li&gt;多行记录处理期间高效的状态管理&lt;/li&gt;
&lt;li&gt;使用优化的字符串操作（TrimStart、Join）替代正则处理续行&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="备注"&gt;备注&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;这些更改设计为向后兼容正常使用场景。如依赖特定上下文名称集或之前严格的解析行为，请验证下游脚本&lt;/li&gt;
&lt;li&gt;新的 &lt;code&gt;Details&lt;/code&gt; 列始终存在于 CSV 输出中；使用 &lt;code&gt;NoDetailsParsing&lt;/code&gt; 可保持其为空以提升性能&lt;/li&gt;
&lt;li&gt;现有按列位置解析 CSV 的脚本需考虑新增的 &lt;code&gt;Details&lt;/code&gt; 列（位置为第17列，位于 ComputerName 之前）&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>v1.0.0 (2026-01-23)</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.0.0/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.0.0/</guid><description>&lt;h3 id="新增"&gt;新增&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;初始版本发布&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; - 高性能解析器，用于 Windows DNS 服务器调试日志文件&lt;/li&gt;
&lt;li&gt;解析 DNS 调试日志中的所有 15 个标准字段，转换为结构化的 CSV 格式&lt;/li&gt;
&lt;li&gt;支持自定义 CSV 分隔符（默认：分号）&lt;/li&gt;
&lt;li&gt;可选的 ComputerName 列，便于多服务器日志合并&lt;/li&gt;
&lt;li&gt;三种输出模式：仅 CSV 数据、仅统计信息或两者兼有&lt;/li&gt;
&lt;li&gt;按客户端 IP、协议和查询类型汇总的统计摘要&lt;/li&gt;
&lt;li&gt;支持管道处理，实现批量处理多个日志文件&lt;/li&gt;
&lt;li&gt;头部验证以确保数据完整性（可根据需要绕过）&lt;/li&gt;
&lt;li&gt;可选自动压缩输出文件（ZIP 格式）&lt;/li&gt;
&lt;li&gt;处理成功后可选删除源文件&lt;/li&gt;
&lt;li&gt;文化感知的日期解析和格式化，适用于国际 DNS 服务器&lt;/li&gt;
&lt;li&gt;针对大文件（100MB 以上）优化，采用流式 I/O 和高效字符串操作&lt;/li&gt;
&lt;li&gt;兼容 PowerShell 5.1+（桌面版和核心版）&lt;/li&gt;
&lt;li&gt;支持 Windows Server 2016+ 及 DNS Server 2012 R2 至 2025 日志格式&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>版本说明 v1.1.0 (2026-01-23)</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.1.0.0/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/changelog/release-v1.1.0.0/</guid><description>&lt;h2 id="新增"&gt;新增&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：ContextFilter 参数用于选择性日志解析
&lt;ul&gt;
&lt;li&gt;按上下文类型过滤日志条目：PACKET（DNS 查询/响应）、EVENT（服务器事件）或 Note（诊断信息）&lt;/li&gt;
&lt;li&gt;允许针对特定日志条目类型进行聚焦分析&lt;/li&gt;
&lt;li&gt;默认值：All（包含所有上下文类型）&lt;/li&gt;
&lt;li&gt;使用场景：仅关注 DNS 流量，监控服务器事件，排查诊断问题&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新增&lt;/strong&gt;：CSV 输出中的信息字段
&lt;ul&gt;
&lt;li&gt;捕获 EVENT 和 Note 上下文条目的详细信息&lt;/li&gt;
&lt;li&gt;示例：“DNS 服务器已启动”、“区域加载完成”、套接字错误、内部状态消息&lt;/li&gt;
&lt;li&gt;增强对 DNS 服务器运行事件和诊断的可见性&lt;/li&gt;
&lt;li&gt;当 Context 为 EVENT 或 Note 时填充该字段；PACKET 条目为空&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="变更"&gt;变更&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;重大变更&lt;/strong&gt;：ComputerName 列现在始终包含在所有输出记录的末尾
&lt;ul&gt;
&lt;li&gt;之前：ComputerName 仅在指定参数时有条件地包含在开头&lt;/li&gt;
&lt;li&gt;现在：ComputerName 始终作为最后一列出现；未指定参数时为空&lt;/li&gt;
&lt;li&gt;优点：输出结构一致，简化多服务器日志合并和自动化处理&lt;/li&gt;
&lt;li&gt;影响：现有解析列位置或依赖条件列存在的脚本需更新&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="新增-1"&gt;新增&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;通过 ContextFilter 参数实现上下文过滤，聚焦特定日志条目类型（PACKET、EVENT、NOTE）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="改进"&gt;改进&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;重构 Convert-DNSDebugLogFile 的注释帮助，提升清晰度和简洁性&lt;/li&gt;
&lt;li&gt;更新参数描述，使其更具信息性和可操作性&lt;/li&gt;
&lt;li&gt;改进示例文档，提供更聚焦且实用的用例&lt;/li&gt;
&lt;li&gt;增强 about_DNSServer.DebugLogParser 帮助文件，反映当前功能&lt;/li&gt;
&lt;li&gt;增强详细日志记录，提供处理过程中的更详细进度信息&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>法律声明</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/impressum/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/impressum/</guid><description>&lt;div&gt;&lt;a id="td-block-0" class="td-anchor-no-extra-offset"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;section class="row td-box td-box--primary td-box--height-auto"&gt;
&lt;div class="col"&gt;
&lt;div class="h1"&gt;
&lt;h1 id="根据德国电信媒体法tmg第5条的信息"&gt;根据德国电信媒体法（TMG）第5条的信息&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;br&gt;
&lt;h2 id="法律声明"&gt;法律声明&lt;/h2&gt;
&lt;p&gt;Andreas Bellstedt&lt;br&gt;
Brunnenstr. 38&lt;br&gt;
75387 Neubulach&lt;br&gt;
德国&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="联系方式"&gt;联系方式&lt;/h2&gt;
&lt;p&gt;电子邮件: &lt;a href="mailto:blog@andibellstedt.com"&gt;blog@andibellstedt.com&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="法律形式--商业状态"&gt;法律形式 / 商业状态&lt;/h2&gt;
&lt;p&gt;本网站由个人 / 个体经营者运营。&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="根据德国州际广播条约rstv第552条负责内容"&gt;根据德国州际广播条约（RStV）第55(2)条负责内容&lt;/h2&gt;
&lt;p&gt;Andreas Bellstedt&lt;br&gt;
（上述地址）&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="内容责任"&gt;内容责任&lt;/h2&gt;
&lt;p&gt;作为服务提供者，我们根据一般法律在这些页面上对我们自己的内容负责，符合TMG第7(1)条的规定。然而，根据TMG第8-10条的规定，我们没有义务监控传输或存储的第三方信息，或调查表明非法活动的情况。&lt;/p&gt;
&lt;p&gt;根据一般法律的删除或阻止使用信息的义务不受影响。在具体法律违规行为被知晓之前，责任仅在于知晓后。我们在得知相应的法律违规行为后，将立即删除相关内容。&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="链接责任"&gt;链接责任&lt;/h2&gt;
&lt;p&gt;本网站包含指向外部第三方网站的链接，我们对其内容没有控制权。链接页面的各自提供者或运营者始终对其内容负责。链接页面在链接时已检查可能的法律违规行为。链接时未发现任何非法内容。&lt;/p&gt;
&lt;p&gt;然而，在没有具体法律违规证据的情况下，持续监控链接页面内容是不合理的。在得知法律违规行为后，我们将立即删除此类链接。&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="版权"&gt;版权&lt;/h2&gt;
&lt;p&gt;网站运营者在这些页面上创建的内容和作品受德国版权法保护。复制、处理、分发以及任何超出版权限制的利用均需获得相应作者或创作者的书面同意。仅允许出于私人、非商业用途下载和复制本网站。&lt;/p&gt;
&lt;p&gt;对于本网站上未由运营者创建的内容，尊重第三方的版权。第三方内容已标记为此类。如果您仍然发现版权侵权，请相应地通知我们。在得知法律违规行为后，我们将立即删除相关内容。&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="争议解决"&gt;争议解决&lt;/h2&gt;
&lt;p&gt;欧洲委员会提供在线争议解决（ODR）平台：https://ec.europa.eu/consumers/odr/
我们的电子邮件地址在法律声明中已列出。&lt;/p&gt;
&lt;p&gt;我们既不愿意也没有义务参与消费者仲裁委员会的争议解决程序。&lt;/p&gt;
&lt;br&gt;
&lt;div&gt;&lt;a id="td-block-1" class="td-anchor-no-extra-offset"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;section class="row td-box td-box--secondary td-box--height-auto td-below-navbar"&gt;
&lt;div class="col"&gt;
&lt;div class="h6"&gt;
&lt;p&gt;&lt;strong&gt;最后更新:&lt;/strong&gt; 2026年1月18日&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;p&gt;来源: 基于 &lt;a href="https://www.e-recht24.de"&gt;https://www.e-recht24.de&lt;/a&gt;&lt;/p&gt;</description></item><item><title>隐私政策</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/privacy-policy/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/privacy-policy/</guid><description>&lt;div&gt;&lt;a id="td-block-0" class="td-anchor-no-extra-offset"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;section class="row td-box td-box--primary td-box--height-auto"&gt;
&lt;div class="col"&gt;
&lt;div class="h1"&gt;
&lt;h1 id="隐私政策"&gt;隐私政策&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;br&gt;
&lt;h2 id="1-隐私概览"&gt;1. 隐私概览&lt;/h2&gt;
&lt;h3 id="一般说明"&gt;一般说明&lt;/h3&gt;
&lt;p&gt;以下说明提供了您访问本网站时个人数据处理的简单概述。个人数据是指可以识别您个人身份的所有数据。有关数据保护主题的详细信息，请参阅我们在本文下方列出的隐私政策。&lt;/p&gt;
&lt;h3 id="本网站的数据收集"&gt;本网站的数据收集&lt;/h3&gt;
&lt;h4 id="谁负责本网站的数据收集"&gt;谁负责本网站的数据收集？&lt;/h4&gt;
&lt;p&gt;本网站的数据处理由网站运营商进行。其联系信息可以在本隐私政策的“数据控制者通知”部分找到。&lt;/p&gt;
&lt;h4 id="我们如何收集您的数据"&gt;我们如何收集您的数据？&lt;/h4&gt;
&lt;p&gt;您的数据一方面是通过您提供给我们的方式收集的。这可以是您在联系表单中输入的数据。&lt;/p&gt;
&lt;p&gt;其他数据则是通过我们的IT系统在您访问网站时自动收集或在您同意后收集的。这些主要是技术数据（例如，互联网浏览器、操作系统或页面请求时间）。这些数据的收集在您进入本网站时自动进行。&lt;/p&gt;
&lt;h4 id="我们将您的数据用于什么"&gt;我们将您的数据用于什么？&lt;/h4&gt;
&lt;p&gt;部分数据的收集是为了确保网站的无误提供。其他数据可以用于分析您的用户行为。如果可以通过网站签订或启动合同，传输的数据也将用于合同报价、订单或其他服务查询。&lt;/p&gt;
&lt;h4 id="您对您的数据有哪些权利"&gt;您对您的数据有哪些权利？&lt;/h4&gt;
&lt;p&gt;您有权随时免费获取有关您存储的个人数据的来源、接收者和目的的信息。您还有权请求更正或删除这些数据。如果您已同意数据处理，您可以随时撤回该同意。您在某些情况下还有权请求限制对您个人数据的处理。此外，您有权向主管监督机构提出投诉。&lt;/p&gt;
&lt;p&gt;如需对此及其他数据保护主题的进一步问题，您可以随时与我们联系。&lt;/p&gt;
&lt;h3 id="分析工具和第三方工具"&gt;分析工具和第三方工具&lt;/h3&gt;
&lt;p&gt;访问本网站时，您的浏览行为可能会被统计分析。这主要是通过所谓的分析程序进行的。&lt;/p&gt;
&lt;p&gt;有关这些分析程序的详细信息，请参阅以下隐私政策。&lt;/p&gt;
&lt;h2 id="2-托管"&gt;2. 托管&lt;/h2&gt;
&lt;p&gt;我们与以下提供商托管我们网站的内容：&lt;/p&gt;
&lt;h3 id="strato"&gt;Strato&lt;/h3&gt;
&lt;p&gt;提供商是Strato AG，地址为：Otto-Ostrowski-Straße 7, 10249 Berlin（以下简称“Strato”）。当您访问我们的网站时，Strato会记录包括您的IP地址在内的各种日志文件。&lt;/p&gt;
&lt;p&gt;更多信息请参见Strato的隐私政策：&lt;a href="https://www.strato.de/datenschutz/"&gt;https://www.strato.de/datenschutz/&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;使用Strato基于GDPR第6条第1款(f)项。我们有合理的利益以尽可能可靠地展示我们的网站。如果获得了相应的同意，处理将仅基于GDPR第6条第1款(a)项和德国电信-电信媒体数据保护法第25条第1款，前提是同意包括存储Cookies或访问用户终端设备上的信息（例如设备指纹识别）在TTDSG的意义下。该同意可以随时撤回。&lt;/p&gt;
&lt;h2 id="3-一般说明和强制性信息"&gt;3. 一般说明和强制性信息&lt;/h2&gt;
&lt;h3 id="数据保护"&gt;数据保护&lt;/h3&gt;
&lt;p&gt;这些页面的运营商非常重视您的个人数据保护。我们会根据法定数据保护规定以及本隐私政策对您的个人数据进行保密处理。&lt;/p&gt;
&lt;p&gt;当您使用本网站时，会收集各种个人数据。个人数据是指可以识别您个人身份的数据。本隐私政策解释了我们收集哪些数据以及我们将其用于何处。它还解释了如何以及出于何种目的进行这些操作。&lt;/p&gt;
&lt;p&gt;我们指出，互联网数据传输（例如，通过电子邮件进行通信）可能存在安全漏洞。完全安全地保护数据不被第三方访问是不可能的。&lt;/p&gt;
&lt;h3 id="数据控制者通知"&gt;数据控制者通知&lt;/h3&gt;
&lt;p&gt;本网站数据处理的控制者是：&lt;/p&gt;
&lt;p&gt;Andreas Bellstedt
Brunnenstr. 38
75387 Neubulach
德国&lt;/p&gt;
&lt;p&gt;电子邮件：blog@andibellstedt.com&lt;/p&gt;
&lt;p&gt;数据控制者是指单独或与他人共同决定个人数据处理的目的和手段的自然人或法人（例如，姓名、电子邮件地址或类似信息）。&lt;/p&gt;
&lt;h3 id="存储期限"&gt;存储期限&lt;/h3&gt;
&lt;p&gt;除非本隐私政策中另有具体存储期限的说明，否则您的个人数据将保留在我们这里，直到数据处理的目的终止。如果您提出合理的删除请求或撤回数据处理的同意，您的数据将被删除，除非我们有其他合法的理由存储您的个人数据（例如，税务或商业保留期限）；在后者情况下，删除将在这些理由不再适用后进行。&lt;/p&gt;
&lt;h3 id="关于本网站数据处理法律依据的一般说明"&gt;关于本网站数据处理法律依据的一般说明&lt;/h3&gt;
&lt;p&gt;如果您同意数据处理，我们将根据GDPR第6条第1款(a)项处理您的个人数据，或者如果处理特殊类别的数据（根据GDPR第9条第1款），则根据GDPR第9条第2款(a)项进行处理。在明确同意将个人数据转移到第三国的情况下，数据处理也基于GDPR第49条第1款(a)项。如果您同意存储Cookies或访问您终端设备上的信息（例如，通过设备指纹识别），数据处理也基于德国电信-电信媒体数据保护法第25条第1款。该同意可以随时撤回。如果您的数据对于履行合同或实施合同前措施是必要的，我们将根据GDPR第6条第1款(b)项处理您的数据。此外，如果出于遵守法律义务的需要，我们将根据GDPR第6条第1款(c)项处理您的数据。数据处理也可能基于我们根据GDPR第6条第1款(f)项的合法利益。各个案例中适用的法律依据将在本隐私政策的后续段落中进行解释。&lt;/p&gt;
&lt;h3 id="关于向没有足够数据保护水平的第三国转移数据以及向未获得dpf认证的美国公司的转移的说明"&gt;关于向没有足够数据保护水平的第三国转移数据以及向未获得DPF认证的美国公司的转移的说明&lt;/h3&gt;
&lt;p&gt;我们使用来自于不提供足够数据保护水平的第三国的公司工具，以及未在欧盟-美国数据隐私框架（DPF）下获得认证的美国工具。如果这些工具处于活动状态，您的个人数据可能会被转移到这些国家并在其中处理。我们指出，在这些第三国中，无法保证与欧盟相当的数据保护水平。&lt;/p&gt;
&lt;p&gt;我们指出，美国通常提供与欧盟相当的数据保护水平。因此，如果接收方在“欧盟-美国数据隐私框架”（DPF）下获得认证或具有适当的额外保障，则向美国转移数据是允许的。有关向第三国转移数据的信息，包括数据接收者的信息，可以在本隐私政策中找到。&lt;/p&gt;
&lt;h3 id="个人数据的接收者"&gt;个人数据的接收者&lt;/h3&gt;
&lt;p&gt;在我们的商业活动中，我们与各种外部实体合作。在某些情况下，可能还需要将个人数据转移给这些外部实体。我们仅在合同履行必要、法律要求（例如，向税务机关披露数据）、根据GDPR第6条第1款(f)项有合理利益或其他法律依据允许数据转移的情况下，向外部实体提供个人数据。在使用处理者时，我们仅基于有效的订单处理合同转移客户的个人数据。在共同处理的情况下，签订共同处理合同。&lt;/p&gt;
&lt;h3 id="撤回您对数据处理的同意"&gt;撤回您对数据处理的同意&lt;/h3&gt;
&lt;p&gt;许多数据处理操作仅在您明确同意的情况下才能进行。您可以随时撤回已给予的任何同意。撤回不会影响撤回之前进行的数据处理的合法性。&lt;/p&gt;
&lt;h3 id="在特殊情况下反对数据收集和直接广告的权利gdpr第21条"&gt;在特殊情况下反对数据收集和直接广告的权利（GDPR第21条）&lt;/h3&gt;
&lt;p&gt;如果数据处理基于GDPR第6条第1款(e)或(f)项，您有权随时出于您特定情况的原因反对处理您的个人数据；这也适用于基于这些规定的分析。处理操作的法律依据可以在本隐私政策中找到。如果您反对，我们将不再处理您的个人数据，除非我们能够证明有强有力的合法理由进行处理，这些理由超过您的利益、权利和自由，或者处理是为了建立、行使或捍卫法律主张（根据GDPR第21条第1款的反对）。&lt;/p&gt;
&lt;p&gt;如果您的个人数据用于直接营销目的，您有权随时反对将您的个人数据用于此类营销；这也适用于与此类直接营销相关的分析。如果您反对，您的个人数据将不再用于直接营销目的（根据GDPR第21条第2款的反对）。&lt;/p&gt;
&lt;h3 id="向主管监督机构提出投诉的权利"&gt;向主管监督机构提出投诉的权利&lt;/h3&gt;
&lt;p&gt;在GDPR违反的情况下，数据主体有权向监督机构提出投诉，特别是在其常住地、工作地点或涉嫌侵权的地点的成员国。提出投诉的权利不影响其他行政或司法救济。&lt;/p&gt;
&lt;h3 id="数据可携带权"&gt;数据可携带权&lt;/h3&gt;
&lt;p&gt;您有权以结构化、常用和机器可读的格式接收我们根据您的同意或履行合同自动处理的数据，并有权将这些数据传输给另一个controller. 如果您请求将数据直接传输给另一个控制者，这仅在技术上可行的范围内进行。&lt;/p&gt;</description></item><item><title>使用 SQL Server 的安全分析工作流</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/security-analysis-sql/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/security-analysis-sql/</guid><description>&lt;p&gt;此示例展示了一个实用的安全分析工作流：使用 &lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 解析 DNS 调试日志，将生成的 CSV 导入 SQL Server，并运行查询以突出显示异常大量的 TXT 记录查询。&lt;/p&gt;
&lt;p&gt;为了最佳的互操作性，此示例通过使用 &lt;code&gt;-OutputCulture 'sv-SE'&lt;/code&gt; 以类似 ISO 的格式写入时间戳。&lt;/p&gt;
&lt;h2 id="所需模块"&gt;所需模块&lt;/h2&gt;
&lt;p&gt;此示例使用以下 PowerShell 模块：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DNSServer.DebugLogParser&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SqlServer&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如有需要，请安装它们：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Install-Module -Name DNSServer.DebugLogParser -Scope CurrentUser
Install-Module -Name SqlServer -Scope CurrentUser
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="场景"&gt;场景&lt;/h2&gt;
&lt;p&gt;当你想将解析后的 DNS 调试日志数据移入 SQL Server，以便你可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高效搜索大数据集&lt;/li&gt;
&lt;li&gt;构建可重复使用的检测查询&lt;/li&gt;
&lt;li&gt;关联多个 DNS 服务器的活动&lt;/li&gt;
&lt;li&gt;保留规范化数据以供后续调查&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;时，请使用此工作流。&lt;/p&gt;
&lt;h2 id="转换步骤的输出"&gt;转换步骤的输出&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; 不直接写入 SQL Server。它首先创建一个 CSV 文件。该 CSV 文件即为导入数据库的数据集。&lt;/p&gt;
&lt;p&gt;在此示例中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入日志：&lt;code&gt;C:\Administration\Logs\DNS\dns.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;生成的 CSV：&lt;code&gt;C:\Administration\Logs\DNS\dns.csv&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;目标表：&lt;code&gt;dbo.DNSQueries&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="创建目标表"&gt;创建目标表&lt;/h2&gt;
&lt;p&gt;在 SQL Server 中运行以下语句一次，创建目标表。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-sql"&gt;IF OBJECT_ID('dbo.DNSQueries', 'U') IS NULL
BEGIN
 CREATE TABLE dbo.DNSQueries (
 DateTime datetime2(0) NOT NULL,
 ThreadId int NULL,
 Context nvarchar(20) NULL,
 PacketId int NULL,
 Protocol nvarchar(10) NULL,
 Direction nvarchar(10) NULL,
 ClientIP nvarchar(64) NULL,
 Xid nvarchar(16) NULL,
 Type nvarchar(16) NULL,
 Opcode nvarchar(16) NULL,
 FlagsHex nvarchar(16) NULL,
 FlagsChar nvarchar(16) NULL,
 ResponseCode nvarchar(32) NULL,
 QuestionType nvarchar(32) NULL,
 QuestionName nvarchar(512) NULL,
 Information nvarchar(max) NULL,
 Details nvarchar(max) NULL,
 ComputerName nvarchar(256) NULL
 );
END;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="转换日志并导入-csv"&gt;转换日志并导入 CSV&lt;/h2&gt;
&lt;p&gt;以下 PowerShell 示例执行完整工作流：&lt;/p&gt;</description></item><item><title>关于作者</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/about/</guid><description>&lt;link rel="preload" as="image" href="https://DNSServerDebugLogParser.andibellstedt.com/images/main-background_hu_fa24d3b9a9ebf86.jpg" media="(max-width: 1200px)"&gt;
&lt;link rel="preload" as="image" href="https://DNSServerDebugLogParser.andibellstedt.com/images/main-background_hu_96620a9289dc443e.jpg" media="(min-width: 1200px)"&gt;
&lt;style&gt;
#td-cover-block-0 {
 background-image: url(/images/main-background_hu_fa24d3b9a9ebf86.jpg);
}
@media only screen and (min-width: 1200px) {
 #td-cover-block-0 {
 background-image: url(/images/main-background_hu_96620a9289dc443e.jpg);
 }
}
&lt;/style&gt;
&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-auto td-below-navbar js-td-cover td-overlay td-overlay--dark -bg-dark" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;h1 class="display-1 mt-0 mt-md-5 pb-4"&gt;关于作者&lt;/h1&gt;
 &lt;div class="pt-3 lead"&gt;
 &lt;!-- color="primary bg-gradient td-below-navbar" --&gt;
&lt;p&gt;&lt;img src="https://DNSServerDebugLogParser.andibellstedt.com/images/about/author.png" alt="Me"&gt;&lt;/p&gt;
&lt;!-- prettier-ignore --&gt;
&lt;p class="display-6"&gt;- Andi Bellstedt -&lt;/p&gt;
&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/section&gt;
&lt;div&gt;&lt;a id="td-block-1" class="td-anchor-no-extra-offset"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;section class="row td-box td-box--white td-box--height-auto"&gt;
&lt;div class="col"&gt;
&lt;div class="container"&gt;
&lt;h2 id="向世界问好"&gt;向世界问好！&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;我是 &lt;strong&gt;Andreas Bellstedt&lt;/strong&gt; — 拥有超过 &lt;strong&gt;20 年经验&lt;/strong&gt; 的 IT 专业人士，主要活跃于企业环境中。通常大家叫我 &lt;strong&gt;Andi&lt;/strong&gt;。&lt;br&gt;
我热爱技术，更热衷于将技术应用于提升可靠性、安全性和运营效率。&lt;/p&gt;
&lt;p&gt;多年来，我积累了广泛的技能。如今，我专注于以 &lt;strong&gt;PowerShell 自动化&lt;/strong&gt; 作为个人 IT 世界的核心。&lt;/p&gt;
&lt;p&gt;我拥有多年专业 &lt;strong&gt;IT 咨询&lt;/strong&gt; 经验，涵盖技术交付、研讨会和架构支持。此外，我还承担过 &lt;strong&gt;领导、协调和管理&lt;/strong&gt; 职责——将技术深度与利益相关者沟通、优先级管理和执行能力相结合。
&lt;br&gt;&lt;/p&gt;</description></item><item><title>域环境中的实际应用（基于 GPO 的收集与转换）</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/gpo-driven-collection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/gpo-driven-collection/</guid><description>&lt;p&gt;本文档概述了在 Active Directory 域环境中运行 DNSServer.DebugLogParser 的一个实用端到端示例，重点是转换域控制器上的 Windows DNS 服务器调试日志。&lt;/p&gt;
&lt;p&gt;本示例附带一个 &lt;a href="../gpo/T0-C-Analytics-DNSDebugLogging.zip"&gt;ZIP 压缩包&lt;/a&gt;，其中包含用于实现本文所述工作流的策略工件。&lt;br&gt;
最相关的工件包括 &lt;a href="../gpo/backup/manifest.xml" target="_blank" rel="noopener noreferrer"&gt;备份清单&lt;/a&gt;、&lt;a href="../gpo/backup/{2B6F16BC-0E7C-4787-83D7-2854FED882EE}/gpreport.xml" target="_blank" rel="noopener noreferrer"&gt;GPO 报告&lt;/a&gt;、&lt;a href="../gpo/backup/{2B6F16BC-0E7C-4787-83D7-2854FED882EE}/DomainSysvol/GPO/Machine/Preferences/Files/Files.xml" target="_blank" rel="noopener noreferrer"&gt;Files.xml&lt;/a&gt;、&lt;a href="../gpo/backup/{2B6F16BC-0E7C-4787-83D7-2854FED882EE}/DomainSysvol/GPO/Machine/Preferences/Files/Set-DNSServerDebugLogging.ps1" target="_blank" rel="noopener noreferrer"&gt;Set-DNSServerDebugLogging.ps1&lt;/a&gt; 和 &lt;a href="../gpo/backup/{2B6F16BC-0E7C-4787-83D7-2854FED882EE}/DomainSysvol/GPO/Machine/Preferences/ScheduledTasks/ScheduledTasks.xml" target="_blank" rel="noopener noreferrer"&gt;ScheduledTasks.xml&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="场景"&gt;场景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;多台域控制器（DC）托管 DNS 服务器角色。&lt;/li&gt;
&lt;li&gt;通过计划任务在每台 DC 上启用并一致配置 DNS 调试日志（将日志文件写入 &lt;code&gt;C:\Administration\Logs\DNSServer&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;通过集中管理的进程将日志转换为 CSV，用于：
&lt;ul&gt;
&lt;li&gt;安全分析&lt;/li&gt;
&lt;li&gt;运营报告&lt;/li&gt;
&lt;li&gt;故障排查&lt;/li&gt;
&lt;li&gt;合规/保留&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="目标成果"&gt;目标成果&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;所有 DC 上转换设置一致&lt;/li&gt;
&lt;li&gt;输出位置和命名可预测&lt;/li&gt;
&lt;li&gt;可选压缩以减少存储占用&lt;/li&gt;
&lt;li&gt;可选统计输出以便快速的每日汇总&lt;/li&gt;
&lt;li&gt;主机端风险最小，明确重跑和清理策略&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="建议架构"&gt;建议架构&lt;/h2&gt;
&lt;h3 id="收集模型本地转换--中央拉取"&gt;收集模型：本地转换 + 中央拉取&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;每台 DC 将 DNS 调试日志写入磁盘，并启用日志轮换。&lt;/li&gt;
&lt;li&gt;每台 DC 将轮换后的 &lt;code&gt;*.log&lt;/code&gt; 文件转换为数据 CSV 和统计 CSV，然后按计划（任务计划程序）压缩输出为 &lt;code&gt;*.zip&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;输出文件写在日志文件旁边，保持管道简单。&lt;/li&gt;
&lt;li&gt;中央服务器收集 &lt;code&gt;*.zip&lt;/code&gt; 输出，例如通过文件共享采集、定时复制、SIEM 转发器或基于代理的收集器。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;该模型最大限度减少了对大型原始日志文件的网络读取，将解析工作保持在数据近旁。&lt;/p&gt;
&lt;h2 id="gpo-工作流"&gt;GPO 工作流&lt;/h2&gt;
&lt;p&gt;该工作流通过组策略（计算机配置）实现，确保所有域控制器的设置一致。&lt;/p&gt;</description></item><item><title>搜索结果</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/search/</guid><description>&lt;!--
 此页面由搜索布局生成，不应直接编辑。
 内容由搜索索引和搜索查询生成。
 搜索查询作为URL参数“q”传递，例如/cn/search?q=example
--&gt;</description></item><item><title>网站信息</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/site/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/site/</guid><description>&lt;!--
 这个注释应该保留用于pester测试的翻译目的，但这个注释的内容对最终用户来说并不重要，可以忽略。
 这个页面旨在提供关于网站的信息，例如使用的主题、构建过程和其他相关细节。
--&gt;
&lt;h2 id="构建信息"&gt;构建信息&lt;/h2&gt;
&lt;p&gt;网站使用 [&lt;span class="badge bg-primary text-bg-primary fs-6"&gt;Docsy]&lt;/span&gt; 主题为 Hugo 构建。&lt;/p&gt;</description></item><item><title>计划任务示例</title><link>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/scheduletask/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/cn/docs/examples/scheduletask/</guid><description>&lt;p&gt;此脚本创建了一个每天凌晨 2:00 运行的 Windows 计划任务。它导入模块并处理脚本执行所在文件夹中的所有日志文件（本例中为 &amp;ldquo;C:\Administration\Logs\DNS&amp;rdquo;）。该过程会将输出压缩成 ZIP 文件，并删除原始文件以保持整洁。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;$actionParams = @{
 Execute = &amp;quot;powershell.exe&amp;quot;
 Argument = '-ExecutionPolicy RemoteSigned -Command &amp;quot;Import-Module DNSServer.DebugLogParser; Get-ChildItem .\*.log | Sort-Object lastwritetime, Name -Descending | Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME -Delimiter \&amp;quot;;\&amp;quot; -OutputType Both -ContextFilter Packet -OutputCulture sv-SE -CompressOutput&amp;quot;'
 WorkingDirectory = &amp;quot;C:\Administration\Logs\DNS&amp;quot;
}
$Action = New-ScheduledTaskAction @actionParams

$Trigger = New-ScheduledTaskTrigger -Daily -At &amp;quot;2:00AM&amp;quot;

Register-ScheduledTask -TaskName &amp;quot;Process DNS Logs&amp;quot; -Action $Action -Trigger $Trigger -Description &amp;quot;Convert DNS debug logs to CSV daily&amp;quot;
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>