Version 1.0.0.0 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot.

Convert-DNSDebugLogFile

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /v1.0.0.0/it/docs/commands/convert-dnsdebuglogfile/index.md.

SINOSSI

Converte i file di log di debug del server DNS di Windows in formato CSV.

SINTASSI

__AllParameterSets

Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
 [[-ComputerName] <string>] [[-OutputType] <string>] [[-InputCulture] <cultureinfo>]
 [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation] [-RemoveSourceFile] [-CompressOutput]
 [-WhatIf] [-Confirm] [<CommonParameters>]

ALIAS

Questo cmdlet ha i seguenti alias,

DESCRIZIONE

Parser ad alte prestazioni per i file di log di debug del server DNS di Windows progettato per rendere l’attività del server DNS trasparente, analizzabile e valutabile in strumenti di reportistica e analisi.

I log di debug del server DNS contengono informazioni dettagliate su query/risposte ma sono difficili da analizzare nel loro formato testo grezzo. Questo script trasforma questi log in file CSV strutturati che possono essere importati in Excel, Power BI, database SQL o altre piattaforme di analisi dati.

CAPACITÀ PRINCIPALI:

  • Analizza tutti i 16 campi dei log di debug DNS (data, ora, protocollo, IP client, tipo di query, ecc.)
  • Genera output CSV strutturato con delimitatori personalizzabili
  • Crea riepiloghi statistici opzionali aggregando l’attività per client, protocollo e tipo di query
  • Elabora singoli file o batch tramite pipeline
  • Supporta formati di log di debug DNS standard e dettagliati
  • Compressione automatica opzionale dei file di output per risparmiare spazio su disco
  • Rimozione opzionale dei file di origine dopo l’elaborazione riuscita
  • Valida le intestazioni dei file di log per garantire l’integrità dei dati

CASI D’USO:

  • Analisi di sicurezza: identificare modelli sospetti di query DNS
  • Monitoraggio delle prestazioni: tracciare volumi di query e tempi di risposta
  • Pianificazione della capacità: analizzare il carico del server DNS e la distribuzione dei client
  • Reportistica di conformità: documentare l’attività DNS per requisiti di audit
  • Risoluzione dei problemi: indagare problemi di risoluzione DNS

PRESTAZIONI: Ottimizzato per file di grandi dimensioni (oltre 100MB) utilizzando:

  • Operazioni su stringhe invece di regex per il parsing
  • StreamReader/StreamWriter con buffer da 64KB
  • Generazione manuale del CSV per evitare overhead di Export-Csv
  • Raccolta efficiente delle statistiche basata su dizionari

COMPATIBILITÀ:

  • PowerShell 5.1+ su Windows
  • PowerShell 7+ su Windows
  • Windows Server 2016 e versioni successive
  • Supporta formati di log di debug DNS Server dal 2012 R2 fino al 2025

ESEMPI

ESEMPIO 1

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log"

Converte il log di debug DNS in formato CSV usando le impostazioni predefinite. Output: C:\Logs\dns.csv (solo file dati, delimitatore punto e virgola).

ESEMPIO 2

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both

Converte il log di debug DNS e genera entrambi i file di output. Output: C:\Logs\dns.csv (dati) e C:\Logs\dns_statistic.csv (statistiche aggregate).

ESEMPIO 3

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Statistic

Genera solo il file delle statistiche senza creare il file CSV completo. Output: C:\Logs\dns_statistic.csv (solo statistiche).

ESEMPIO 4

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"

Converte il log di debug DNS in una posizione di output personalizzata. Output: C:\Output\parsed.csv.

ESEMPIO 5

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both

Converte il log usando la virgola come delimitatore con una colonna ComputerName. Output: C:\Logs\dns.csv e C:\Logs\dns_statistic.csv, entrambi con “DNS01” nella colonna ComputerName.

ESEMPIO 6

PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -OutputType Both

Elabora più file di log di debug DNS tramite pipeline. Output: per ogni file .log genera sia .csv (dati) che _statistic.csv (statistiche).

ESEMPIO 7

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -CompressOutput

Converte il log di debug DNS e comprime l’output in un archivio ZIP. Output: C:\Logs\dns.zip contenente dns.csv. Il file csv non compresso viene rimosso dopo la compressione.

ESEMPIO 8

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both -CompressOutput

Converte il log con statistiche e comprime entrambi i file di output. Output: C:\Logs\dns.zip contenente sia dns.csv che dns_statistic.csv.

ESEMPIO 9

PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -RemoveSourceFile -CompressOutput

Elabora più file di log, comprime l’output e rimuove i file di origine. Ogni file .log viene convertito in .zip compresso, poi il file .log originale viene eliminato. Ideale per pipeline automatizzate di archiviazione log.

ESEMPIO 10

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\old_dns.log" -RemoveSourceFile -Verbose

Converte il file di log e rimuove il file di origine dopo l’elaborazione riuscita. L’output dettagliato conferma la rimozione del file. Usare con cautela poiché i file di origine vengono eliminati definitivamente.

ESEMPIO 11

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE'

Converte un log di debug DNS da un server Windows tedesco. Usare quando il file di log proviene da un server con impostazioni regionali diverse.

ESEMPIO 12

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE'))

Converte un log di debug DNS da un server Windows svedese usando il formato data ISO (YYYY-MM-DD). Utile per elaborare log da server con impostazioni locali diverse.

ESEMPIO 13

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'

Converte un log di debug DNS da un server Windows tedesco e formatta le date di output per sistemi USA. Utile per elaborare log da server internazionali destinati a sistemi basati negli USA.

ESEMPIO 14

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)

Converte un log di debug DNS e formatta le date di output usando il formato ISO 8601 (YYYY-MM-DD). Ideale per compatibilità cross-platform o scenari di scambio dati.

ESEMPIO 15

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -WhatIf

Mostra cosa succederebbe se il comando venisse eseguito senza creare realmente alcun file. Utile per testare i parametri del comando prima di elaborare dati reali.

ESEMPIO 16

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -RemoveSourceFile -CompressOutput -WhatIf

Anteprima del flusso di lavoro completo inclusi compressione e rimozione file di origine. Nessun file viene creato, compresso o eliminato - mostra solo cosa accadrebbe.

PARAMETRI

-CompressOutput

Comprimi i file CSV di output in un archivio ZIP dopo la creazione.

Crea un file .zip contenente il/i file CSV generato/i, quindi rimuove il/i CSV non compressi. Il file ZIP viene creato nella stessa cartella del CSV di output con lo stesso nome base. La compressione avviene immediatamente dopo l’elaborazione di ogni file per gestire efficientemente lo spazio su disco.

Vantaggi:

  • Riduce significativamente l’uso dello spazio su disco (i file CSV si comprimono molto bene)
  • Semplifica la gestione e l’archiviazione dei file
  • Adatto per l’archiviazione a lungo termine dei log elaborati

Esempio: l’input ‘dns.log’ genera ‘dns.csv’ che viene compresso in ‘dns.zip’, poi ‘dns.csv’ viene rimosso.

Compatibile con PowerShell 5.1+ e 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: ''

-ComputerName

Opzionale. Se specificato, aggiunge una colonna ComputerName all’output CSV con il valore indicato. Utile quando si consolidano log da più server DNS.

Importante: NON è una funzionalità di remoting. Lo script elabora solo file locali.

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: ''

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Se specificato, chiede conferma prima di:

  • Elaborare ogni file di log di debug DNS
  • Rimuovere i file di origine (quando è specificato -RemoveSourceFile)
  • Sovrascrivere file di output esistenti

Utile per elaborazioni interattive quando vuoi controllare quali file vengono processati.

Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

-Delimiter

Carattere delimitatore per l’output CSV.

Predefinito è punto e virgola ‘;’

Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 2
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

-InputCulture

Specifica la cultura da usare per il parsing dei valori data/ora nel log di debug DNS.

I log di debug DNS Server usano il formato data della locale di Windows sul server dove il log è stato generato. Questo parametro permette di analizzare log provenienti da server con impostazioni regionali diverse.

Predefinito è la cultura corrente ([System.Globalization.CultureInfo]::CurrentCulture).

Valori comuni di cultura:

  • ‘de-DE’ o ‘de-AT’: formato tedesco (GG.MM.AAAA o GG/MM/AAAA)
  • ’en-US’: formato USA (MM/GG/AAAA)
  • ’en-GB’: formato UK (GG/MM/AAAA)
  • ‘sv-SE’: formato svedese/ISO (AAAA-MM-GG)

Esempio: -InputCulture ‘de-DE’ per log da server Windows tedesco. Esempio: -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo(‘sv-SE’)) per log svedesi.

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: ''

-InputFile

Percorso del file di log di debug DNS da analizzare. Supporta array per elaborare più file.

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: ''

-OutputCulture

Specifica la cultura da usare per formattare i valori data/ora nei file CSV di output.

Questo parametro controlla come i valori DateTime vengono scritti nell’output CSV. È utile quando i file CSV saranno consumati da applicazioni o sistemi con impostazioni regionali specifiche.

Predefinito è la cultura corrente ([System.Globalization.CultureInfo]::CurrentCulture).

Valori comuni di cultura:

  • ’en-US’: formato USA (MM/GG/AAAA)
  • ‘de-DE’: formato tedesco (GG.MM.AAAA)
  • ’en-GB’: formato UK (GG/MM/AAAA)
  • ‘sv-SE’: formato svedese/ISO (AAAA-MM-GG)

Esempio: -OutputCulture ’en-US’ per formattare le date per sistemi USA. Esempio: -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) per formato 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: ''

-OutputFile

Opzionale. Percorso per il file CSV di output. Se non specificato, usa il nome del file di input con estensione .csv.

Deve essere un percorso file, non una directory. Se vuoi specificare solo la directory di output, ometti questo parametro e lo script userà la stessa directory del file di input.

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: ''

-OutputType

Specifica il tipo di output da generare.

Valori validi:

  • ‘CSV’: genera solo il file CSV con i dati del log analizzati (predefinito)
  • ‘Statistic’: genera solo il file delle statistiche con dati aggregati
  • ‘Both’: genera sia file CSV che file delle statistiche

Predefinito è ‘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: ''

-RemoveSourceFile

Rimuove il file di log di debug DNS di origine dopo l’elaborazione riuscita.

Usa questo switch per cancellare automaticamente i file di input dopo che sono stati analizzati con successo e i file di output creati. Questo è utile per:

  • Pipeline automatizzate di elaborazione log
  • Gestione dello spazio disco in scenari di raccolta log
  • Evitare la rielaborazione di file già convertiti

Funzionalità di sicurezza:

  • Rimuove i file solo dopo l’elaborazione e la creazione dell’output riuscite
  • Salta la rimozione se l’elaborazione fallisce o viene interrotta
  • Non può essere usato con SkipHeaderValidation per sicurezza

Attenzione: i file di origine vengono eliminati definitivamente. Assicurati che i file di output siano validi prima di usare questa opzione.

Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

-SkipHeaderValidation

Salta il controllo di validazione dell’intestazione del log di debug DNS.

Di default, lo script verifica che i file di input abbiano una struttura valida di intestazione del log di debug DNS Server. Usa questo switch per elaborare file senza validazione dell’intestazione, utile per:

  • Elaborare formati di log modificati o personalizzati
  • Risolvere problemi di validazione
  • Elaborare log con intestazioni non standard

Attenzione: usare questo parametro può causare errori di elaborazione se il file non è un log DNS valido.

Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

-WhatIf

Mostra cosa succederebbe se il cmdlet venisse eseguito. Il cmdlet non viene eseguito.

Se specificato, mostra informazioni dettagliate sulle operazioni che verrebbero eseguite senza effettivamente eseguirle. Utile per:

  • Anteprima dei file che verrebbero elaborati
  • Verifica dei percorsi dei file di output prima dell’elaborazione
  • Test degli script prima dell’esecuzione in produzione
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per maggiori informazioni, vedi about_CommonParameters.

INPUT

System.String[]

NOTE

Versione: 1.2.0.0 Autore: Andreas Bellstedt, Copilot Data: 2026-01-23 Parole chiave: Microsoft, Windows Server, DNSServer, DNS, DebugLog, LogParser