在这里,你可以找到模块中所有命令的参考资料。此参考旨在帮助你快速找到所需命令,并了解如何有效使用它。
点击命令后,你将进入一个详细页面,提供该命令的全面信息,包括语法、参数、示例以及任何额外的使用说明或技巧。
在这里,你可以找到模块中所有命令的参考资料。此参考旨在帮助你快速找到所需命令,并了解如何有效使用它。
点击命令后,你将进入一个详细页面,提供该命令的全面信息,包括语法、参数、示例以及任何额外的使用说明或技巧。
将 Windows DNS 服务器调试日志文件转换为 CSV 格式。
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
[[-ComputerName] <string>] [[-OutputType] <string>] [[-InputCulture] <cultureinfo>]
[[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation] [-RemoveSourceFile] [-CompressOutput]
[-WhatIf] [-Confirm] [<CommonParameters>]
此 cmdlet 有以下别名,
高性能的 Windows DNS 服务器调试日志文件解析器,旨在使 DNS 服务器活动透明化、可分析,并可在报告和分析工具中评估。
DNS 服务器调试日志包含详细的查询/响应信息,但原始文本格式难以分析。
此脚本将这些日志转换为结构化的 CSV 文件,便于导入 Excel、Power BI、SQL 数据库或其他数据分析平台。
主要功能:
使用场景:
性能优化:
针对大文件(100MB+)优化,使用:
兼容性:
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log"
使用默认设置将 DNS 调试日志转换为 CSV 格式。
输出:C:\Logs\dns.csv(仅数据文件,分号分隔符)。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both
转换 DNS 调试日志并生成两个输出文件。
输出:C:\Logs\dns.csv(数据)和 C:\Logs\dns_statistic.csv(汇总统计)。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Statistic
仅生成统计文件,不创建完整的 CSV 数据文件。
输出:C:\Logs\dns_statistic.csv(仅统计)。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"
将 DNS 调试日志转换到自定义输出位置。
输出:C:\Output\parsed.csv。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
使用逗号分隔符并添加 ComputerName 列转换日志。
输出:C:\Logs\dns.csv 和 C:\Logs\dns_statistic.csv,ComputerName 列均为 “DNS01”。
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -OutputType Both
通过管道处理多个 DNS 调试日志文件。
输出:每个 .log 文件生成对应的 .csv(数据)和 _statistic.csv(统计)文件。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -CompressOutput
转换 DNS 调试日志并将输出压缩为 ZIP 文件。
输出:C:\Logs\dns.zip,包含 dns.csv。压缩后删除未压缩的 csv 文件。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both -CompressOutput
转换日志并生成统计数据,同时压缩两个输出文件。
输出:C:\Logs\dns.zip,包含 dns.csv 和 dns_statistic.csv。
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -RemoveSourceFile -CompressOutput
处理多个日志文件,压缩输出并删除源文件。
每个 .log 文件转换为压缩的 .zip 文件,然后删除源 .log 文件。
适合自动化日志归档流程。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\old_dns.log" -RemoveSourceFile -Verbose
转换日志文件并在成功处理后删除源文件。
详细输出确认文件已删除。使用时请谨慎,因为源文件会被永久删除。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE'
转换来自德国 Windows 服务器的 DNS 调试日志。
当日志文件来自不同区域设置的服务器时使用。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE'))
转换来自瑞典 Windows 服务器、使用 ISO 日期格式(YYYY-MM-DD)的 DNS 调试日志。
适用于处理不同区域设置服务器的日志。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'
转换来自德国 Windows 服务器的 DNS 调试日志,并将输出日期格式化为美国系统格式。
适用于国际服务器日志供美国系统使用。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)
转换 DNS 调试日志,输出日期使用 ISO 8601 格式(YYYY-MM-DD)。
适合跨平台兼容或数据交换场景。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -WhatIf
显示如果运行命令会发生什么,但不实际创建任何文件。
适合在处理实际数据前测试命令参数。
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -RemoveSourceFile -CompressOutput -WhatIf
预览完整工作流程,包括压缩和源文件删除。
不创建、压缩或删除任何文件,仅显示将会发生的操作。
在创建后将输出的 CSV 文件压缩为 ZIP 文件。
创建一个包含生成的 CSV 文件的 .zip 文件,然后删除未压缩的 CSV 文件。
ZIP 文件与输出 CSV 文件位于同一目录,且使用相同的基本名称。
压缩在每个文件处理完后立即进行,以有效管理磁盘空间。
优点:
示例:输入 ‘dns.log’ 生成 ‘dns.csv’,随后压缩为 ‘dns.zip’,然后删除 ‘dns.csv’。
兼容 PowerShell 5.1+ 和 Windows Server 2016+。
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
可选。
如果指定,将在 CSV 输出中添加一个 ComputerName 列,值为指定内容。
适用于合并多个 DNS 服务器日志时标识来源。
重要提示:这不是远程功能。
脚本仅处理本地文件。
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Server
- DNSServer
- HostName
ParameterSets:
- Name: (All)
Position: 3
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
在运行 cmdlet 前提示确认。
指定后,在以下操作前提示确认:
适合交互式处理时控制处理文件。
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CSV 输出的分隔符字符。
默认是分号 ‘;’
Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 2
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
指定用于解析 DNS 调试日志中日期/时间值的区域文化。
DNS 服务器调试日志使用生成日志的服务器 Windows 区域设置的日期格式。
此参数允许解析来自不同区域设置服务器的日志。
默认是当前文化 ([System.Globalization.CultureInfo]::CurrentCulture)。
常见文化值:
示例:-InputCulture ‘de-DE’ 用于德国 Windows 服务器的日志。
示例:-InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo(‘sv-SE’)) 用于瑞典日志。
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 5
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
要解析的 DNS 调试日志文件路径。
支持数组以处理多个文件。
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
- InputPath
- File
- Path
ParameterSets:
- Name: (All)
Position: 0
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
指定用于格式化输出 CSV 文件中日期/时间值的区域文化。
此参数控制 DateTime 值写入 CSV 输出的格式。
当 CSV 文件将被特定区域设置的应用程序或系统使用时非常有用。
默认是当前文化 ([System.Globalization.CultureInfo]::CurrentCulture)。
常见文化值:
示例:-OutputCulture ’en-US’ 用于美国系统的日期格式。
示例:-OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) 用于 ISO 格式。
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 6
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
可选。
输出 CSV 文件的路径。
如果未指定,使用输入文件名并替换为 .csv 扩展名。
必须是文件路径,不能是目录。
如果只想指定输出目录,请省略此参数,脚本将使用与输入文件相同的目录。
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Output
- Destination
- OutFile
- OutputPath
ParameterSets:
- Name: (All)
Position: 1
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
指定生成的输出类型。
有效值:
默认是 ‘Both’。
Type: String
DefaultValue: Both
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 4
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
成功处理后删除源 DNS 调试日志文件。
使用此开关可在成功解析输入文件并创建输出文件后自动删除输入文件。
适用于:
安全特性:
警告:源文件将被永久删除。
使用前请确保输出文件有效。
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
跳过 DNS 调试日志头部验证检查。
默认情况下,脚本会验证输入文件是否具有有效的 DNS 服务器调试日志头结构。
使用此开关可跳过头部验证,适用于:
警告:使用此参数可能导致处理错误,如果文件不是有效的 DNS 日志。
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
显示如果运行 cmdlet 会发生什么。
cmdlet 不会实际运行。
指定后,显示将执行的操作详细信息,但不执行它们。
适用于:
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
此 cmdlet 支持常用参数:-Debug、-ErrorAction、-ErrorVariable、
-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、
-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。更多信息请参见
about_CommonParameters。
版本: 1.2.0.0
作者: Andreas Bellstedt, Copilot
日期: 2026-01-23
关键词: Microsoft, Windows Server, DNSServer, DNS, DebugLog, LogParser