Parametry i opcje
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /pl/docs/03-parameters-and-options/index.md.
Ta strona wyjaśnia opcje prostym językiem i w kolejności, w jakiej zazwyczaj ich potrzebujesz. To przewodnik, a nie specyfikacja — autorytatywna, zawsze aktualna lista parametrów znajduje się w referencji poleceń oraz w:
Get-Help Convert-DNSDebugLogFile -Full
Krótkie podsumowanie
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"
Ta jedna linia już daje rozsądne zachowanie: pliki danych i statystyk, średnik jako separator, format daty twojej maszyny, włączona walidacja nagłówka, oryginalny plik dziennika nietknięty. Wszystko poniżej to dopracowywanie.
| Opcja | Domyślnie | Zmień, gdy |
|---|---|---|
-InputFile | (wymagane) | zawsze |
-OutputFile | ścieżka wejściowa z .csv | chcesz wynik gdzie indziej |
-Delimiter | ; | twój odbiorca oczekuje przecinka, tabulatora lub kreski pionowej |
-ComputerName | puste | łączysz dzienniki z więcej niż jednego serwera |
-OutputType | Both | chcesz tylko dane albo tylko podsumowania |
-ContextFilter | All | interesuje cię tylko rzeczywisty ruch DNS |
-InputCulture | bieżąca kultura | dziennik pochodzi z serwera o innej lokalizacji |
-OutputCulture | bieżąca kultura | plik CSV będzie czytać maszyna |
-NoDetailsParsing | wyłączone | ważniejsza jest przepustowość niż szczegóły pakietów |
-CompressOutput | wyłączone | archiwizujesz lub przesyłasz wyniki |
-RemoveSourceFile | wyłączone | zaplanowane sprzątanie i ufasz wynikowi |
-SkipHeaderValidation | wyłączone | plik jest poprawny, ale nagłówek nietypowy |
Wejście i wyjście
-InputFile
Ścieżka do dziennika do konwersji. Przyjmuje tablicę i dane z potoku — dlatego działa to:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" | Convert-DNSDebugLogFile
Get-ChildItem zwraca obiekty z właściwością FullName, a -InputFile akceptuje ją po nazwie właściwości (aliasy to m.in. FullName, Path, FilePath). Nie trzeba ForEach-Object.
Działają zarówno ścieżki lokalne, jak i SMB/UNC:
Convert-DNSDebugLogFile -InputFile "\\dc01\C$\Administration\Logs\DNSServer\dns.log"
Polecenie może też otworzyć dziennik, który DNS Server ma aktualnie otwarty. Zobacz aktywne dzienniki poniżej, zanim na tym polegasz.
-OutputFile
Bez tego plik CSV trafia obok pliku wejściowego, z tą samą nazwą bazową i rozszerzeniem .csv. Z tym parametrem kontrolujesz miejsce docelowe.
-OutputFile "D:\Processed\" nie oznacza „zapisz do tego folderu”. Podaj pełną ścieżkę wraz z nazwą pliku: -OutputFile "D:\Processed\dns_data.csv".
To też oznacza, że -OutputFile nie ma sensu, gdy przesyłasz wiele plików — każda konwersja zapisywałaby do tego samego pliku. Przy wsadowych uruchomieniach pomiń ten parametr, aby każdy dziennik wygenerował własny CSV.
-Delimiter
Domyślnie średnik, bo w lokalizacjach, gdzie przecinek jest separatorem dziesiętnym, Excel tego oczekuje. Użyj -Delimiter "," dla narzędzi i baz danych, które zakładają klasyczny format CSV z przecinkiem, lub -Delimiter "`t" dla tabulatora.
Cokolwiek wybierzesz, używaj tej samej wartości po stronie importu. Niezgodność to najczęstsza przyczyna, że „wszystko wylądowało w jednej kolumnie”.
Etykietowanie i filtrowanie
-ComputerName
Wypełnia kolumnę ComputerName. Kolumna istnieje zawsze; ten parametr tylko nadaje jej wartość.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ComputerName $env:COMPUTERNAME
Pomimo nazwy (i aliasów -Server / -DNSServer / -HostName), -ComputerName nie łączy się z niczym. Nie ma WinRM, nie ma zdalnego wykonania. Tylko wpisuje etykietę do wyniku. Aby czytać zdalny dziennik, wskaż -InputFile na ścieżkę UNC.
Ustawiaj zawsze, gdy kilka serwerów zasila jeden zestaw danych — inaczej potem nie odróżnisz, z którego DC pochodzi wiersz.
-OutputType
CSV— tylko plik danychStatistic— tylko dwa pliki zbiorcze, bez danych wierszowychBoth— wszystkie trzy pliki (domyślnie)
Statistic to szybka, mała opcja, gdy potrzebujesz tylko trendów dziennych. CSV jest właściwe, gdy system dalej sam agreguje dane.
-ContextFilter
Dziennik debugowania DNS miesza rzeczywisty ruch zapytań z wewnętrznym szumem serwera. -ContextFilter decyduje, co przejdzie do wyniku.
# tylko prawdziwy ruch DNS
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet
# ruch plus zdarzenia serwera, ale bez not diagnostycznych
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet, Event
| Wartość | Zawiera |
|---|---|
All | wszystko (domyślnie) |
Packet | zapytania i odpowiedzi DNS — dane potrzebne większości analiz |
Event | zdarzenia serwera, np. „Serwer DNS został uruchomiony” |
Note | notatki diagnostyczne i ostrzeżenia, np. błędy gniazda |
Dodatkowe typy kontekstu (DSPoll, Init, Lookup, Recurse, Remote, Tombstone) pojawiają się pod All.
Filtrowanie tylko do Event lub Note wypełnia tylko DateTime, ThreadId, Context i Information — kolumny protokołu pozostają puste, bo te wpisy ich po prostu nie zawierają.
-ContextFilter Packet to zwykły wybór dla potoków bezpieczeństwa i raportowania: usuwa szum i zauważalnie zmniejsza wynik.
Dzienniki międzynarodowe
Serwer DNS zapisuje znaczniki czasu w lokalizacji Windows maszyny, na której działa. Niemiecki DC zapisze 20.01.2026 23:00:16; amerykański serwer 1/20/2026 11:00:16 PM. Jeśli lokalizacja twojej stacji różni się od serwera, parsowanie się nie uda — albo, co gorsza, dzień i miesiąc się zamienią.
-InputCulture
Powiedz parserowi, jaką lokalizację ma dziennik źródłowy:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
| Kultura | Format znacznika czasu w dzienniku |
|---|---|
de-DE | DD.MM.YYYY HH:MM:SS |
en-US | M/D/YYYY H:MM:SS AM/PM |
en-GB | DD/MM/YYYY HH:MM:SS |
sv-SE | YYYY-MM-DD HH:MM:SS |
Domyślnie to kultura sesji uruchamiającej polecenie. W środowisku mieszanym ustaw ją jawnie, zamiast polegać na domyśle — i pamiętaj, że zadanie zaplanowane jako SYSTEM może mieć inną kulturę niż ta, której używałeś interaktywnie.
-OutputCulture
Kontroluje, jak znaczniki czasu są zapisywane do CSV:
# wyjście w stylu ISO, które rozumie SQL Server, Power BI i pandas
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
# ten sam efekt, jawna kultura invariant
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" `
-OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)
Zasada: jeśli człowiek otwiera plik w Excelu, dopasuj lokalną kulturę. Jeśli czyta go maszyna, użyj sv-SE lub kultury invariant i przestań się martwić ustawieniami regionalnymi po stronie importu.
Te dwa parametry są niezależne — możesz czytać szwedzki dziennik i zapisywać wynik w formacie amerykańskim.
Prędkość i miejsce
-NoDetailsParsing
Jeśli serwer DNS loguje pełne szczegóły pakietów, parser zamienia każdy blok szczegółów na JSON w kolumnie Details. To przydatne, ale też najdroższa część działania i powiększa CSV.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -NoDetailsParsing
Kolumna pozostaje obecna, ale pusta; nagłówek szczegółów TCP/UDP jest dalej w Information. Na dziennikach bogatych w bloki szczegółów może to skrócić czas przetwarzania o 30–50%. Używaj, gdy wystarczy informacja na poziomie zapytań.
-CompressOutput
Spakowuje wygenerowane pliki CSV i usuwa nieskompresowane. dns.log daje dns.zip zamiast dns.csv.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput
CSV tego typu zwykle kompresuje się o 90% lub więcej, więc to niemal darmowa oszczędność miejsca na archiwa i przesyłanie plików po sieci.
-RemoveSourceFile
Usuwa plik źródłowy .log po udanej konwersji — plik jest usuwany tylko, jeśli wszystkie pliki wyjściowe zostały utworzone.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput -RemoveSourceFile
Nie ma tu kosza. Zweryfikuj wynik na prawdziwych dziennikach, zanim włączysz to w zadaniu zaplanowanym i nigdy nie wskazuj na aktywny plik dziennika.
Polecenie celowo odmawia łączenia -RemoveSourceFile z -SkipHeaderValidation, więc nie usuniesz pliku, który nigdy nie został potwierdzony jako dziennik DNS.
Siatki bezpieczeństwa
-SkipHeaderValidation
Domyślnie polecenie sprawdza, czy plik to faktycznie dziennik debugowania DNS Server, zanim go przetworzy. To łapie klasyczny błąd wskazania zadania na zły folder.
Wyłączaj tylko w naprawdę nietypowych przypadkach: ręcznie edytowane dzienniki, wyciągi po filtracji, formaty niestandardowe. Włączaj wszędzie indziej — to tanie i chroni przed literówką i górami śmieci.
-WhatIf i -Confirm
Polecenie obsługuje oba. -WhatIf to właściwy sposób, by zobaczyć, co zrobi nowe zadanie wsadowe:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Convert-DNSDebugLogFile -RemoveSourceFile -WhatIf
-Confirm pyta przed przetworzeniem każdego pliku, przed usunięciem pliku źródłowego i przed nadpisaniem istniejącego wyniku.
Aktywne dzienniki
Convert-DNSDebugLogFile może czytać plik, który DNS Server ma otwarty. Przydatne do doraźnego podglądu, co się dzieje teraz.
Aktywny dziennik zmienia się podczas czytania. Wynik może pominąć wpisy dodane w trakcie konwersji, a ostatni rekord może być obcięty. Powtórzenie uruchomienia da inny rezultat.
Dla powtarzalnych wyników włącz obrót dzienników na serwerze DNS i konwertuj tylko zamknięte, obrócone pliki — na przykład pomijając najnowszy:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
Składanie wszystkiego razem
Typowe wywołanie produkcyjne na kontrolerze domeny:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile `
-ComputerName $env:COMPUTERNAME `
-Delimiter ';' `
-OutputType Both `
-ContextFilter Packet `
-OutputCulture 'sv-SE' `
-CompressOutput
Czytaj: weź każdy obrócony dziennik oprócz aktywnego, zachowaj tylko ruch DNS, oznacz każdy wiersz nazwą serwera, zapisz znaczniki czasu w formacie maszynowym i zostaw spakowane archiwa. Pełna wersja do zadania zaplanowanego i GPO jest w przykładzie zbierania sterowanym GPO.