1 - ಡೊಮೇನ್ ಪರಿಸರದಲ್ಲಿ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆ (GPO-ಚಾಲಿತ ಸಂಗ್ರಹ ಮತ್ತು ಪರಿವರ್ತನೆ)
ಈ ಉದಾಹರಣೆ ಡೊಮೇನ್ ನಿಯಂತ್ರಕರ ಮೇಲೆ DNS ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ಪರಿವರ್ತಿಸುವುದಕ್ಕಾಗಿ GPO-ಚಾಲಿತ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಹೇಗೆ ಅನುಷ್ಠಾನಗೊಳಿಸುವುದನ್ನು ತೋರಿಸುತ್ತದೆ.
ಈ ದಸ್ತಾವೇಜು DNSServer.DebugLogParser ಅನ್ನು ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ಡೊಮೇನ್ ಪರಿಸರದಲ್ಲಿ ಎಂಡ್-ಟು-ಎಂಡ್ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಯಾಗಿ ವಿವರಿಸುತ್ತದೆ, ಡೊಮೇನ್ ನಿಯಂತ್ರಕರ ಮೇಲೆ ವಿಂಡೋಸ್ DNS ಸರ್ವರ್ ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು ಪರಿವರ್ತಿಸುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದೆ.
ಈ ಉದಾಹರಣೆಗೆ ZIP ಆರ್ಕೈವ್ ಕೂಡ ಲಭ್ಯವಿದ್ದು, ಇಲ್ಲಿ ವಿವರಿಸಲಾದ ವರ್ಕ್ಫ್ಲೋ ಅನುಷ್ಠಾನಗೊಳಿಸಲು ಬಳಸಲಾದ ಪಾಲಿಸಿ ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಅತ್ಯಂತ ಸಂಬಂಧಿತ ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ಗಳು ಬ್ಯಾಕಪ್ ಮ್ಯಾನಿಫೆಸ್ಟ್, GPO ವರದಿ, Files.xml, Set-DNSServerDebugLogging.ps1, ಮತ್ತು ScheduledTasks.xml.
ದೃಶ್ಯಾವಳಿ
- ಅನೇಕ ಡೊಮೇನ್ ನಿಯಂತ್ರಕರು (DCಗಳು) DNS ಸರ್ವರ್ ಪಾತ್ರವನ್ನು ಹೊಂದಿರುತ್ತಾರೆ.
- DNS ಡಿಬಗ್ ಲಾಗಿಂಗ್ ಪ್ರತಿ DCಯಲ್ಲಿಯೂ ನಿಯಮಿತವಾಗಿ ಮತ್ತು ಸ್ಥಿರವಾಗಿ ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ (
C:\Administration\Logs\DNSServer ಗೆ ಲಾಗ್ ಫೈಲ್ಗಳನ್ನು ಬರೆಯುವುದು). - ಕೇಂದ್ರಿತವಾಗಿ ನಿರ್ವಹಿಸಲಾದ ಪ್ರಕ್ರಿಯೆ ಲಾಗ್ಗಳನ್ನು CSV ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ:
- ಭದ್ರತಾ ವಿಶ್ಲೇಷಣೆಗಾಗಿ
- ಕಾರ್ಯಾಚರಣಾ ವರದಿಗಾಗಿ
- ಸಮಸ್ಯೆ ಪರಿಹಾರಕ್ಕಾಗಿ
- ಅನುಕೂಲತೆ/ರಿಟೆನ್ಷನ್ಗಾಗಿ
ಗುರಿ ಫಲಿತಾಂಶಗಳು
- ಎಲ್ಲಾ DCಗಳಲ್ಲಿಯೂ ಸಾದೃಶ್ಯ ಪರಿವರ್ತನೆ ಸೆಟ್ಟಿಂಗ್ಗಳು
- ನಿರೀಕ್ಷಿತ ಔಟ್ಪುಟ್ ಸ್ಥಳ ಮತ್ತು ಹೆಸರು
- ಸಂಗ್ರಹಣಾ ಜಾಗವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಐಚ್ಛಿಕ ಸಂಕುಚಿತಗೊಳಿಸುವಿಕೆ
- ದೈನಂದಿನ ತ್ವರಿತ ಸಾಂಖ್ಯಿಕ ರಿಪೋರ್ಟ್ಗಳಿಗೆ ಐಚ್ಛಿಕ ಸಾಂಖ್ಯಿಕ ಔಟ್ಪುಟ್ಗಳು
- ಅತೀ ಕಡಿಮೆ ಹೋಸ್ಟ್-ಪಾರ್ಶ್ವದ ಅಪಾಯ, ಸ್ಪಷ್ಟ ಪುನರಾರಂಭ ಮತ್ತು ಕ್ಲೀನ್ಅಪ್ ಪರಿಗಣನೆಗಳೊಂದಿಗೆ
ಶಿಫಾರಸು ಮಾಡಲಾದ ವಾಸ್ತುಶಿಲ್ಪ
ಸಂಗ್ರಹ ಮಾದರಿ: ಸ್ಥಳೀಯ ಪರಿವರ್ತನೆ + ಕೇಂದ್ರಿತ ಪಲ್ಲಟ
- ಪ್ರತಿ DC ಡಿಸ್ಕ್ಗೆ DNS ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು ಬರೆಯುತ್ತದೆ, ರೋಲ್ಓವರ್ ಸಕ್ರಿಯವಾಗಿದೆ.
- ಪ್ರತಿ DC ತಿರುಗಿದ
*.log ಫೈಲ್ಗಳನ್ನು ಡೇಟಾ CSV ಮತ್ತು ಸಾಂಖ್ಯಿಕ CSVಗಳಿಗೆ ಪರಿವರ್ತಿಸಿ, ನಂತರ ಅವುಗಳನ್ನು ಶೆಡ್ಯೂಲ್ (ಟಾಸ್ಕ್ ಶೆಡ್ಯೂಲರ್) ಮೂಲಕ *.zip ಆಗಿ ಸಂಕುಚಿತಗೊಳಿಸುತ್ತದೆ. - ಔಟ್ಪುಟ್ಗಳು ಲಾಗ್ ಫೈಲ್ಗಳ ಪಕ್ಕದಲ್ಲೇ ಬರೆಯಲ್ಪಡುತ್ತವೆ, ಇದರಿಂದ ಪೈಪ್ಲೈನ್ ಸರಳವಾಗಿರುತ್ತದೆ.
- ಕೇಂದ್ರ ಸರ್ವರ್
*.zip ಔಟ್ಪುಟ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಫೈಲ್ ಶೇರ್ ಇಂಜೆಸ್ಟನ್, ಶೆಡ್ಯೂಲ್ಡ್ ಕಾಪಿ, SIEM ಫಾರ್ವರ್ಡರ್ ಅಥವಾ ಏಜೆಂಟ್ ಆಧಾರಿತ ಸಂಗ್ರಹಕ ಮೂಲಕ.
ಈ ಮಾದರಿ ದೊಡ್ಡ ಕಚ್ಚಾ ಲಾಗ್ ಫೈಲ್ಗಳ ನೆಟ್ವರ್ಕ್ ಓದನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ಅನ್ನು ಡೇಟಾ ಹತ್ತಿರ ಇಡುತ್ತದೆ.
GPO ವರ್ಕ್ಫ್ಲೋ
ಈ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಗ್ರೂಪ್ ಪಾಲಿಸಿ (ಕಂಪ್ಯೂಟರ್ ಕಾನ್ಫಿಗರೇಶನ್) ಮೂಲಕ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗಿದ್ದು, ಎಲ್ಲಾ ಡೊಮೇನ್ ನಿಯಂತ್ರಕರಲ್ಲಿ ಸಾದೃಶ್ಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಈ ರೆಪೊದಲ್ಲಿ ಉಲ್ಲೇಖಿತ ಅನುಷ್ಠಾನ (GPO ವರದಿ):
- ಆರ್ಕೈವ್/ವರದಿ ಹೆಸರು:
T0-C-Analytics-DNSDebugLogging - ಬ್ಯಾಕಪ್ ID:
{2B6F16BC-0E7C-4787-83D7-2854FED882EE} - GPO ಲಿಂಕ್ ಗುರಿ:
corp.company.com/Domain Controllers - ಐಟಂ ಫಿಲ್ಟರ್ (ಫೈಲ್ ನಿಯೋಜನೆ ಮತ್ತು ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್ ಎರಡಕ್ಕೂ):
C:\Windows\System32\dns.exe ಇದ್ದರೆ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ
1) ಪೂರ್ವಾಪೇಕ್ಷೆಗಳು (ಫೋಲ್ಡರ್ಗಳು + ಮೋಡ್ಯೂಲ್)
ನೀಡಲಾದ ಬ್ಯಾಕಪ್ ಈ ಫೋಲ್ಡರ್ಗಳು ಈಗಾಗಲೇ ಇವೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೃಷ್ಟಿಸಲು ಬಯಸಿದರೆ ಪ್ರತ್ಯೇಕ GPP ಐಟಂಗಳನ್ನು ಸೇರಿಸಿ:
C:\Administration\ScriptsC:\Administration\Logs\DNSServer
ನೀಡಲಾದ ಬ್ಯಾಕಪ್ Convert-DNSDebugLogFile DCಗಳ ಮೇಲೆ ಈಗಾಗಲೇ ಲಭ್ಯವಿದೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ಪರಿವರ್ತನೆ ಟಾಸ್ಕ್ ವಿಂಡೋಸ್ ಪವರ್ಶೆಲ್ 5.1 ಅನ್ನು -NoProfile ಜೊತೆಗೆ ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ಮೋಡ್ಯೂಲ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಮೋಡ್ಯೂಲ್ LocalSystem ಗೆ ಕಾಣುವ ಯಂತ್ರ-ವ್ಯಾಪ್ತಿಯ ವಿಂಡೋಸ್ ಪವರ್ಶೆಲ್ ಮೋಡ್ಯೂಲ್ ಪಥದಲ್ಲಿ ಸ್ಥಾಪಿತವಾಗಿರಬೇಕು. ಶಿಫಾರಸು ಮಾಡಿದ ವಿಧಾನಗಳು:
- DNSServer.DebugLogParser ಅನ್ನು DCಗಳ ಮೇಲೆ ಸ್ಥಾಪಿಸಿ. ಉದಾಹರಣೆಗೆ, ಪಾಲಿಸಿ ಅನುಮತಿಸಿದರೆ PowerShell Gallery ನಿಂದ.
- ಆಂತರಿಕ ರೆಪೊ / ಫೈಲ್ ಶೇರ್ ಮೂಲಕ ಮೋಡ್ಯೂಲ್ ಅನ್ನು ನಿಯೋಜಿಸಿ, ಇದರಿಂದ ಅದು
$env:PSModulePath ನಲ್ಲಿ ಕಂಡುಬರುತ್ತದೆ - ನಿರ್ಧಿಷ್ಟ ಲೋಡಿಂಗ್ ವರ್ತನೆಗಾಗಿ ಟಾಸ್ಕ್ ಕ್ರಿಯೆಗೆ ಸ್ಪಷ್ಟ
Import-Module ಸೇರಿಸಿ
2) ಡಿಬಗ್ ಲಾಗಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ ಸ್ಕ್ರಿಪ್ಟ್ ನಿಯೋಜನೆ (GPP ಫೈಲ್ಗಳು)
GPO ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ:
- ಮೂಲ (SYSVOL ನಲ್ಲಿ GPP ಮೂಲಕ):
%GptPath%\Preferences\Files\Set-DNSServerDebugLogging.ps1 - ಗುರಿ (ಪ್ರತಿ DCಯಲ್ಲಿ):
C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1
ಇದು Files.xml ನಲ್ಲಿ GPP ಫೈಲ್ ಪ್ರಿಫರೆನ್ಸ್ ಐಟಂನಲ್ಲಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗಿದೆ.
3) ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್: DNS ಡಿಬಗ್ ಲಾಗಿಂಗ್ ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು
GPO Set-DNSServerDebugLogging ಎಂಬ ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್ ರಚಿಸುತ್ತದೆ.
- ನೀಡಲಾದ ಬ್ಯಾಕಪ್ನಲ್ಲಿನ ಭದ್ರತಾ ಸಂದರ್ಭ:
SYSTEM ಲಾಗಿನ್ ಪ್ರಕಾರ S4U - ನೀಡಲಾದ ಬ್ಯಾಕಪ್ನಲ್ಲಿನ ಟ್ರಿಗರ್: ದೈನಂದಿನ (ಆರಂಭ ಗಡಿಭಾಗ
2025-03-01T00:00:01) - ScheduledTasks.xml ನಲ್ಲಿ ಕ್ರಿಯೆ:
powershell.exe -ExecutionPolicy RemoteSigned -command " & { C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1 }"- ಕಾರ್ಯನಿರ್ವಹಣಾ ಡೈರೆಕ್ಟರಿ:
C:\Administration\Scripts
ಲಿಂಕ್ ಮಾಡಲಾದ Set-DNSServerDebugLogging.ps1 ಸ್ಕ್ರಿಪ್ಟ್ Get-DnsServerDiagnostics / Set-DnsServerDiagnostics ಮೂಲಕ DNS ಡಿಬಗ್ ಲಾಗಿಂಗ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು (ಪ್ರಮುಖವಾಗಿ):
- ಫೈಲ್ಗೆ ಲಾಗ್ ಮಾಡುವುದು ಮತ್ತು ರೋಲ್ಓವರ್ ಸಕ್ರಿಯಗೊಳಿಸುವುದು
- ಬರೆಯುವುದು:
C:\Administration\Logs\DNSServer\DnsDebugLog_<COMPUTERNAME>.<Domain>_.log - ಪ್ರತಿ ಫೈಲ್ಗೆ 10 MB ರೋಲ್ಓವರ್ ಗಾತ್ರವನ್ನು ಬಳಸುವುದು
- ಮುಖ್ಯವಾಗಿ ಕ್ವೆರಿಗಳ ಸಂಬಂಧಿತ ಚಟುವಟಿಕೆಗಳನ್ನು ಸೆರೆಹಿಡಿಯುವುದು (ಕ್ವೆರಿಗಳು + ನೋಟಿಫಿಕೇಶನ್ಗಳು + ಅಪ್ಡೇಟುಗಳು + ಪ್ರಶ್ನೆ ವ್ಯವಹಾರಗಳು) ಮತ್ತು ಸಂಪೂರ್ಣ ಪ್ಯಾಕೆಟ್ ಲಾಗಿಂಗ್ ಅನ್ನು ಹೊರತುಪಡಿಸುವುದು
4) ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್: ತಿರುಗಿದ ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು ಸಂಕುಚಿತ CSVಗೆ ಪರಿವರ್ತಿಸುವುದು
GPO Convert-DNSDebugLogs ಎಂಬ ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್ ರಚಿಸುತ್ತದೆ.
- ನೀಡಲಾದ ಬ್ಯಾಕಪ್ನಲ್ಲಿನ ಭದ್ರತಾ ಸಂದರ್ಭ:
SYSTEM ಲಾಗಿನ್ ಪ್ರಕಾರ InteractiveToken - ನೀಡಲಾದ ಬ್ಯಾಕಪ್ನಲ್ಲಿನ ಟ್ರಿಗರ್: ದೈನಂದಿನ (ಆರಂಭ ಗಡಿಭಾಗ
2026-01-01T00:30:00) - ಕಾರ್ಯನಿರ್ವಹಣಾ ಡೈರೆಕ್ಟರಿ:
C:\Administration\Logs\DNSServer - ScheduledTasks.xml ನಲ್ಲಿ ಕ್ರಿಯೆ (ಓದಲು ಸುಲಭವಾಗುವಂತೆ ರೂಪಿಸಲಾಗಿದೆ):
Get-ChildItem .\*.log |
Sort-Object lastwritetime, Name -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile `
-ComputerName $env:COMPUTERNAME `
-Delimiter ';' `
-OutputType Both `
-ContextFilter Packet `
-OutputCulture sv-SE `
-CompressOutput
ಡಿಸೈನ್ ಟಿಪ್ಪಣಿಗಳು:
Select-Object -Skip 1 ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಹೊಸ (ಸಕ್ರಿಯ) ಲಾಗ್ ಫೈಲ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.- ಇದರರ್ಥ ಪ್ರಸ್ತುತ ಡೇಟಾ ಮಾತ್ರ ರೋಲ್ಓವರ್ ನಂತರ ರಫ್ತು ಮಾಡಲಾಗುತ್ತದೆ; ಕಡಿಮೆ ವಾಲ್ಯೂಮ್ DCಗಳ ಮೇಲೆ ಸಕ್ರಿಯ ಲಾಗ್ ಒಂದು ದಿನಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರಕ್ರಿಯೆಗೆ ಒಳಗಾಗದಿರಬಹುದು.
- Convert-DNSDebugLogFile ಡೀಫಾಲ್ಟ್ ಆಗಿ
-OutputFile ಅನ್ನು “ಅದೇ ಫೋಲ್ಡರ್, ಅದೇ ಹೆಸರು, .csv” ಎಂದು ಹೊಂದಿರುವುದರಿಂದ ಔಟ್ಪುಟ್ಗಳು *.log ಇನ್ಪುಟ್ಗಳ ಪಕ್ಕದಲ್ಲೇ ಇರುತ್ತವೆ. -CompressOutput ಬಳಕೆದಾರ ಪ್ರತಿ ಪ್ರಕ್ರಿಯೆ ಮಾಡಿದ ಲಾಗ್ಗೆ *.zip ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಮತ್ತು ಮಧ್ಯಂತರ CSVಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.- ನೀವು ಪ್ರಕ್ರಿಯೆ ಮಾಡಿದ
*.log ಫೈಲ್ಗಳನ್ನು ಆರ್ಕೈವ್ ಅಥವಾ ಅಳಿಸುವವರೆಗೆ, ನಂತರದ ಓಟಗಳು ಪ್ರತಿಯೊಂದು ಸಕ್ರಿಯವಲ್ಲದ ಲಾಗ್ ಅನ್ನು ಮರುಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತವೆ. - ಟಾಸ್ಕ್
$Error.Count -gt 0 ಇದ್ದರೆ ತಪ್ಪು ಎಸೆಯುತ್ತದೆ, ಇದು ವಿಫಲ ಓಟವನ್ನು ಸೂಚಿಸುತ್ತದೆ.
5) ಕೇಂದ್ರಿತ ಇಂಜೆಸ್ಟನ್
ಆಯ್ಕೆಗಳು (ಒಂದು ಆಯ್ಕೆಮಾಡಿ):
- ಫೈಲ್ ಶೇರ್ ಇಂಜೆಸ್ಟನ್: DC
C:\Administration\Logs\DNSServer\*.zip ಅನ್ನು \\fileserver\share\dns\$env:COMPUTERNAME\... ಗೆ ಬರೆಯುತ್ತದೆ (ಅಥವಾ ನಕಲಿಸುತ್ತದೆ) (DC ಕಂಪ್ಯೂಟರ್ ಖಾತೆಗಳಿಗೆ ಅಥವಾ ಟಾಸ್ಕ್ SYSTEM ಆಗಿ ನಡೆಯುವಾಗ ಡೊಮೇನ್ ನಿಯಂತ್ರಕರು ಗುಂಪಿಗೆ ಶೇರ್ ಮತ್ತು NTFS ಹಕ್ಕುಗಳನ್ನು ನೀಡಿ) - ಪಲ್ಲಟ ಮಾದರಿ: ಕೇಂದ್ರ ಕೆಲಸ
\\dc\C$\Administration\Logs\DNSServer\*.zip ಓದುತ್ತದೆ (ಕಡಿಮೆ ಇಷ್ಟಪಡಲ್ಪಟ್ಟದ್ದು; ಆಡಳಿತ ಶೇರ್ಗಳನ್ನು ಅಗತ್ಯವಿದೆ) - ಏಜೆಂಟ್ ಫಾರ್ವರ್ಡರ್: SIEM / ಲಾಗ್ ಪೈಪ್ಲೈನ್
*.zip ಔಟ್ಪುಟ್ಗಳನ್ನು ಸಾಗಿಸುತ್ತದೆ
ಕಾರ್ಯಾಚರಣಾ ಪರಿಗಣನೆಗಳು
- ಕನಿಷ್ಠ ಹಕ್ಕು: ಟಾಸ್ಕ್ಗಳು
SYSTEM ಆಗಿ ನಡೆಯುತ್ತವೆ; ಸ್ಥಳೀಯ ಫೋಲ್ಡರ್ಗಳು ಬರೆಯಬಹುದಾಗಿರಬೇಕು ಮತ್ತು ಯಾವುದೇ UNC ಗುರಿಗಳು ಬಳಕೆಯಾದರೆ ಕಂಪ್ಯೂಟರ್ ಖಾತೆಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಬೇಕು. - ಸಹಿ ನೀತಿ: ಎರಡೂ ಟಾಸ್ಕ್ಗಳು
-ExecutionPolicy RemoteSigned ಬಳಕೆ ಮಾಡುತ್ತವೆ; ನಿಯೋಜಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಮೋಡ್ಯೂಲ್ ಅನ್ನು ನಿಮ್ಮ ನೀತಿಯ ಪ್ರಕಾರ ಸಹಿ ಮಾಡಿರಿ ಅಥವಾ ಅನ್ಬ್ಲಾಕ್ ಮಾಡಿರಿ. - ಡಿಸ್ಕ್ ಬಳಕೆ:
-CompressOutput ಬಹುಮಾನವಾಗಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಆದರೆ ಈ ವರ್ಕ್ಫ್ಲೋ ಮೂಲ ಲಾಗ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದಿಲ್ಲ; ರಿಟೆನ್ಷನ್ ಮತ್ತು ಕ್ಲೀನ್ಅಪ್ ಯೋಜಿಸಿ. - ಮರುಪ್ರಕ್ರಿಯೆ ವರ್ತನೆ: ನೀವು ಪ್ರಕ್ರಿಯೆ ಮಾಡಿದ ಲಾಗ್ಗಳನ್ನು ಆರ್ಕೈವ್ ಅಥವಾ ಅಳಿಸುವವರೆಗೆ, ಪರಿವರ್ತನೆ ಟಾಸ್ಕ್ ನಂತರದ ಓಟಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಸಕ್ರಿಯವಲ್ಲದ
*.log ಫೈಲ್ ಅನ್ನು ಮರುಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತದೆ. ಇದು ಸರಳ ಮತ್ತು ಬಲಿಷ್ಠವಾಗಿದೆ, ಆದರೆ ನಿಮ್ಮ ಸಂಗ್ರಹಕ ಡ್ಯುಪ್ಲಿಕೇಟ್ಗಳನ್ನು ತಡೆಯದಿದ್ದರೆ ಔಟ್ಪುಟ್ಗಳನ್ನು ಮರುಬರೆಯಬಹುದು ಮತ್ತು ಡೌನ್ಸ್ಟ್ರೀಮ್ ಇಂಜೆಸ್ಟನ್ ನಕಲು ಆಗಬಹುದು. - ಬಹು-DC ಸಂಯೋಜನೆ:
-ComputerName $env:COMPUTERNAME ಸೇರಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಸಂಯೋಜಿತ ಡೇಟಾಸೆಟ್ಗಳು ಟ್ರೇಸಬಲ್ ಆಗಿರುತ್ತವೆ. - ಮಾನ್ಯತೆ: ಹೆಡರ್ ಮಾನ್ಯತೆ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಟಾಸ್ಕ್
-SkipHeaderValidation ಬಳಸುವುದಿಲ್ಲ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ).
ಮಾನ್ಯತೆ ಮಾಡಿ ಮತ್ತು ಹೊಂದಿಸಿ (ZIP ಬಳಸಿ)
ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನವಾಗಿ ZIP ಆರ್ಕೈವ್ ಅನ್ನು ಬಳಸಿ, ನಂತರ ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ನಿಮ್ಮ ಪರಿಸರಕ್ಕೆ ಹೊಂದಿಸಿ:
- ಗುರಿ ವ್ಯಾಪ್ತಿ: ಯಾವ DCಗಳು / OUಗಳು ಪಾಲಿಸಿಯನ್ನು ಪಡೆಯುತ್ತವೆ
- ಕಾರ್ಯಾಚರಣೆ ಗುರುತು: ಎರಡೂ ಶೆಡ್ಯೂಲ್ಡ್ ಟಾಸ್ಕ್ಗಳು ಉದ್ದೇಶಿತ ಲಾಗಿನ್ ಪ್ರಕಾರವನ್ನು (
S4U ವಿರುದ್ಧ InteractiveToken) ಬಳಸುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಅಥವಾ ನಿಮ್ಮ ಮಾನದಂಡಕ್ಕೆ ಹೊಂದಿಸಿ - ಫೋಲ್ಡರ್ ಸೃಷ್ಟಿ:
C:\Administration\Scripts ಮತ್ತು C:\Administration\Logs\DNSServer ಇತರಡೆ ಪೂರ್ವ-ಸ್ಥಾಪಿತವೋ ಅಥವಾ ಹೆಚ್ಚುವರಿ GPP ಐಟಂಗಳ ಮೂಲಕ ಸೃಷ್ಟಿಸಬೇಕೋ ನಿರ್ಧರಿಸಿ - ಮಾರ್ಗಗಳು:
C:\Administration\Scripts ಮತ್ತು C:\Administration\Logs\DNSServer ನಿಮ್ಮ ಮಾನದಂಡಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ - ರಿಟೆನ್ಷನ್: ಕಚ್ಚಾ ಲಾಗ್ಗಳನ್ನು ಎಷ್ಟು ಕಾಲ ಇಡಬೇಕು ಎಂದು ನಿರ್ಧರಿಸಿ (ವಿಶೇಷವಾಗಿ ಕ್ಲೀನ್ಅಪ್ ಆಯ್ಕೆಗಳು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ)
- ಇಂಜೆಸ್ಟನ್: CSV/ZIP ಔಟ್ಪುಟ್ಗಳು ಎಲ್ಲಿಗೆ ಬರೆಯಲ್ಪಡುತ್ತವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಕೇಂದ್ರಿತವಾಗಿ ಹೇಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
ನೀವು GPO ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಆಮದು ಮಾಡದೆ ನಿಖರವಾಗಿ ಪರಿಶೀಲಿಸಲು ಬಯಸಿದರೆ, ಈ ರೆಪೊದಲ್ಲಿ ಪ್ರಾಮಾಣಿಕ ಮೂಲಗಳು:
2 - SQL ಸರ್ವರ್ನೊಂದಿಗೆ ಭದ್ರತಾ ವಿಶ್ಲೇಷಣೆ ಕಾರ್ಯಪ್ರವಾಹ
DNSServer.DebugLogParser ಬಳಸಿ DNS ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು CSV ಗೆ ಪರಿವರ್ತಿಸಿ, ಫಲಿತಾಂಶವನ್ನು SQL ಸರ್ವರ್ಗೆ ಆಮದು ಮಾಡಿ, ಮತ್ತು ಅನುಮಾನಾಸ್ಪದ TXT ದಾಖಲೆ ಚಟುವಟಿಕೆಗೆ ಸರಳ ಪತ್ತೆ ಪ್ರಶ್ನೆಯನ್ನು ನಡೆಸಿ.
ಈ ಉದಾಹರಣೆ ಭದ್ರತಾ ವಿಶ್ಲೇಷಣೆಯ ಪ್ರಾಯೋಗಿಕ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ತೋರಿಸುತ್ತದೆ: Convert-DNSDebugLogFile ಬಳಸಿ DNS ಡಿಬಗ್ ಲಾಗ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ, ರಚಿಸಲಾದ CSV ಅನ್ನು SQL ಸರ್ವರ್ಗೆ ಆಮದು ಮಾಡಿ, ಮತ್ತು ಅಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚಿನ TXT ದಾಖಲೆ ಹುಡುಕಾಟಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡುವ ಪ್ರಶ್ನೆಯನ್ನು ನಡೆಸಿ.
ಉತ್ತಮ ಪರಸ್ಪರ ಕಾರ್ಯಕ್ಷಮತೆಯಿಗಾಗಿ, ಈ ಉದಾಹರಣೆ -OutputCulture 'sv-SE' ಬಳಸಿ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ಗಳನ್ನು ISO-ಹಾಗೆ ಫಾರ್ಮ್ಯಾಟ್ನಲ್ಲಿ ಬರೆಯುತ್ತದೆ.
ಅಗತ್ಯವಿರುವ ಮೋಡ್ಯೂಲ್ಗಳು
ಈ ಉದಾಹರಣೆ ಕೆಳಗಿನ PowerShell ಮೋಡ್ಯೂಲ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ:
DNSServer.DebugLogParserSqlServer
ಅವಶ್ಯಕತೆ ಇದ್ದರೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:
Install-Module -Name DNSServer.DebugLogParser -Scope CurrentUser
Install-Module -Name SqlServer -Scope CurrentUser
ದೃಶ್ಯಾವಳಿ
ಪಾರ್ಸ್ ಮಾಡಿದ DNS ಡಿಬಗ್ ಲಾಗ್ ಡೇಟಾವನ್ನು SQL ಸರ್ವರ್ಗೆ ಸ್ಥಳಾಂತರಿಸಲು ಈ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ಬಳಸಿ, ಇದರಿಂದ ನೀವು:
- ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಹುಡುಕಬಹುದು
- ಪುನರಾವರ್ತನೀಯ ಪತ್ತೆ ಪ್ರಶ್ನೆಗಳನ್ನು ರಚಿಸಬಹುದು
- ಹಲವಾರು DNS ಸರ್ವರ್ಗಳ ಚಟುವಟಿಕೆಯನ್ನು ಸಂಯೋಜಿಸಬಹುದು
- ನಂತರದ ತನಿಖೆಗೆ ಸಾಮಾನ್ಯೀಕೃತ ಡೇಟಾವನ್ನು ಉಳಿಸಬಹುದು
ಪರಿವರ್ತನೆ ಹಂತದ ಔಟ್ಪುಟ್
Convert-DNSDebugLogFile ನೇರವಾಗಿ SQL ಸರ್ವರ್ಗೆ ಬರೆಯುವುದಿಲ್ಲ. ಮೊದಲು ಇದು CSV ಫೈಲ್ ರಚಿಸುತ್ತದೆ. ಆ CSV ಫೈಲ್ ಅನ್ನು ಡೇಟಾಬೇಸ್ಗೆ ಆಮದು ಮಾಡಲಾಗುತ್ತದೆ.
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ:
- ಇನ್ಪುಟ್ ಲಾಗ್:
C:\Administration\Logs\DNS\dns.log - ರಚಿಸಲಾದ CSV:
C:\Administration\Logs\DNS\dns.csv - ಗಮ್ಯಸ್ಥಾನ ಟೇಬಲ್:
dbo.DNSQueries
ಗಮ್ಯಸ್ಥಾನ ಟೇಬಲ್ ರಚಿಸಿ
ಗಮ್ಯಸ್ಥಾನ ಟೇಬಲ್ ರಚಿಸಲು SQL ಸರ್ವರ್ನಲ್ಲಿ ಕೆಳಗಿನ ಸ್ಟೇಟ್ಮೆಂಟ್ ಅನ್ನು ಒಮ್ಮೆ ಚಲಾಯಿಸಿ.
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;
ಲಾಗ್ ಅನ್ನು ಪರಿವರ್ತಿಸಿ ಮತ್ತು CSV ಅನ್ನು ಆಮದು ಮಾಡಿ
ಕೆಳಗಿನ PowerShell ಉದಾಹರಣೆ ಸಂಪೂರ್ಣ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:
- ಅಗತ್ಯವಿರುವ ಮೋಡ್ಯೂಲ್ಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ
- DNS ಡಿಬಗ್ ಲಾಗ್ ಅನ್ನು CSV ಗೆ ಪರಿವರ್ತಿಸಿ
- ರಚಿಸಲಾದ CSV ಅನ್ನು ಲೋಡ್ ಮಾಡಿ
- ಸಾಲುಗಳನ್ನು SQL ಸರ್ವರ್ಗೆ ಬಲ್ಕ್ ಆಮದು ಮಾಡಿ
# Requires -Modules DNSServer.DebugLogParser, SqlServer
Import-Module -Name DNSServer.DebugLogParser -ErrorAction Stop
Import-Module -Name SqlServer -ErrorAction Stop
$logPath = 'C:\Administration\Logs\DNS\dns.log'
$csvPath = 'C:\Administration\Logs\DNS\dns.csv'
$serverInstance = 'SQLServer'
$databaseName = 'DNSLogs'
$delimiter = ';'
$createTableSql = @'
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
'@
Convert-DNSDebugLogFile `
-InputFile $logPath `
-ComputerName 'DNS01' `
-OutputType CSV `
-OutputFile $csvPath `
-Delimiter $delimiter `
-OutputCulture 'sv-SE'
$rows = Import-Csv -Path $csvPath -Delimiter $delimiter
if (-not $rows) {
throw "The generated CSV file '$csvPath' does not contain any rows."
}
$dataTable = [System.Data.DataTable]::new()
foreach ($columnName in $rows[0].PSObject.Properties.Name) {
$null = $dataTable.Columns.Add($columnName, [string])
}
foreach ($row in $rows) {
$dataRow = $dataTable.NewRow()
foreach ($column in $dataTable.Columns) {
$columnName = $column.ColumnName
$dataRow[$columnName] = $row.$columnName
}
$null = $dataTable.Rows.Add($dataRow)
}
$connectionString = "Server=$serverInstance;Database=$databaseName;Integrated Security=True"
$connection = [System.Data.SqlClient.SqlConnection]::new($connectionString)
try {
$connection.Open()
$command = $connection.CreateCommand()
$command.CommandText = $createTableSql
$null = $command.ExecuteNonQuery()
$bulkCopy = [System.Data.SqlClient.SqlBulkCopy]::new($connection)
$bulkCopy.DestinationTableName = 'dbo.DNSQueries'
foreach ($column in $dataTable.Columns) {
$null = $bulkCopy.ColumnMappings.Add($column.ColumnName, $column.ColumnName)
}
$bulkCopy.WriteToServer($dataTable)
}
finally {
$connection.Dispose()
}
ಅನುಮಾನಾಸ್ಪದ TXT ದಾಖಲೆ ಚಟುವಟಿಕೆಗಾಗಿ ಪ್ರಶ್ನೆ
ಡೇಟಾ SQL ಸರ್ವರ್ನಲ್ಲಿ ಇದ್ದಾಗ, ನೀವು ಅಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚಿನ TXT ದಾಖಲೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಮಾಡುವ ಕ್ಲೈಂಟ್ಗಳನ್ನು ಹುಡುಕಬಹುದು.
SELECT
ComputerName,
ClientIP,
QuestionName,
COUNT(*) AS QueryCount
FROM dbo.DNSQueries
WHERE QuestionType = 'TXT'
GROUP BY
ComputerName,
ClientIP,
QuestionName
HAVING COUNT(*) > 100
ORDER BY QueryCount DESC;
ನೀವು PowerShell ನಿಂದ ಪ್ರಶ್ನೆಯನ್ನು ನಡೆಸಲು ಇಚ್ಛಿಸಿದರೆ, SqlServer ಮೋಡ್ಯೂಲ್ನಿಂದ Invoke-Sqlcmd ಬಳಸಿ:
$query = @'
SELECT
ComputerName,
ClientIP,
QuestionName,
COUNT(*) AS QueryCount
FROM dbo.DNSQueries
WHERE QuestionType = 'TXT'
GROUP BY
ComputerName,
ClientIP,
QuestionName
HAVING COUNT(*) > 100
ORDER BY QueryCount DESC;
'@
Invoke-Sqlcmd `
-ServerInstance 'SQLServer' `
-Database 'DNSLogs' `
-Query $query
TXT ಪ್ರಶ್ನೆಗಳು ಆಸಕ್ತಿದಾಯಕವಾಗಿರುವ ಕಾರಣ
ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ TXT ದಾಖಲೆ ಹುಡುಕಾಟಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದು ಉಪಯುಕ್ತ, ಏಕೆಂದರೆ ಅವು ಸೂಚಿಸಬಹುದು:
- DNS ಟನ್ನಲಿಂಗ್
- DNS ಮೂಲಕ ಡೇಟಾ ಹೊರಹೋಗುವಿಕೆ
- ಮ್ಯಾಲ್ವೇರ್ ಅಥವಾ ಉಪಕರಣಗಳಿಂದ TXT ದಾಖಲೆಗಳ ದುರುಪಯೋಗ
- ಅಸಾಮಾನ್ಯವಾಗಿ ಶಬ್ದಮಯ ಅಥವಾ ತಪ್ಪಾಗಿ ಸಂರಚಿತ ಕ್ಲೈಂಟ್ಗಳು
ಈ ಪ್ರಶ್ನೆ ಕೇವಲ ಪ್ರಾರಂಭಬಿಂದುವಾಗಿದೆ. ಉತ್ಪಾದನೆಯಲ್ಲಿ, ನೀವು ಗಡಿ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸಬೇಕು ಮತ್ತು ನಿಮ್ಮ ಪರಿಸರಕ್ಕೆ ಹೊಂದುವಂತೆ ಫಿಲ್ಟರ್ಗಳನ್ನು ಸೇರಿಸಬೇಕು.
ಕಾರ್ಯಾಚರಣಾ ಟಿಪ್ಪಣಿಗಳು
Import-Csv ಸಂಪೂರ್ಣ ಫೈಲ್ ಅನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಓದುತ್ತದೆ. ಬಹಳ ದೊಡ್ಡ ಲಾಗ್ ರಫ್ತುಗಳಿಗೆ, ಸಂಪೂರ್ಣ DataTable ರಚಿಸುವ ಬದಲು ಸ್ಟ್ರೀಮಿಂಗ್ ವಿಧಾನವನ್ನು ಪರಿಗಣಿಸಿ.- ಪರಿವರ್ತನೆ ಹಂತದಲ್ಲಿ
-ComputerName ಉಳಿಸಿ, ಇದರಿಂದ ಕೇಂದ್ರಿತ ಆಮದು ನಂತರ ದಾಖಲೆಗಳನ್ನು ಗುರುತಿಸಬಹುದು. - ರಫ್ತು ಮತ್ತು ಆಮದು ಸಮಯದಲ್ಲಿ ಸತತ ಡಿಲಿಮಿಟರ್ ಮತ್ತು ಸಂಸ್ಕೃತಿಯನ್ನು ಬಳಸಿ.
- ದೀರ್ಘಕಾಲಿಕ ಸಂಗ್ರಹಣೆಗೆ ಈ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ಬಳಸುವ ಮೊದಲು SQL ಸರ್ವರ್ನಲ್ಲಿ ಉಳಿಸುವಿಕೆ, ಸೂಚ್ಯಂಕ ಮತ್ತು ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ಪರಿಶೀಲಿಸಿ.
3 - ಶೆಡ್ಯೂಲ್ ಮಾಡಿದ ಟಾಸ್ಕ್ ಉದಾಹರಣೆ
ಈ ಉದಾಹರಣೆ ಪ್ರತಿದಿನವೂ DNS ಡಿಬಗ್ ಲಾಗ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಪವರ್ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ವಿಂಡೋಸ್ ಶೆಡ್ಯೂಲ್ ಮಾಡಿದ ಟಾಸ್ಕ್ ಅನ್ನು ಸೃಷ್ಟಿಸುವ ವಿಧಾನವನ್ನು ತೋರಿಸುತ್ತದೆ.
ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರತಿದಿನವೂ ಬೆಳಗ್ಗೆ 2:00 ಗಂಟೆಗೆ ಚಾಲನೆಗೊಳ್ಳುವ ವಿಂಡೋಸ್ ಶೆಡ್ಯೂಲ್ ಮಾಡಿದ ಟಾಸ್ಕ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಇದು ಮೋಡ್ಯೂಲ್ ಅನ್ನು ಆಮದುಮಾಡಿ, ಸ್ಕ್ರಿಪ್ಟ್ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಫೋಲ್ಡರ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಲಾಗ್ ಫೈಲ್ಗಳನ್ನು (ಈ ಉದಾಹರಣೆಯಲ್ಲಿ “C:\Administration\Logs\DNS”) ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆ ಔಟ್ಪುಟ್ ಅನ್ನು ZIP-ಫೈಲ್ಗಳಾಗಿ ಸಂಕುಚಿತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಮೂಲವನ್ನು ತೆಗೆದುಹಾಕಿ ಸ್ವಚ್ಛತೆ ಕಾಪಾಡುತ್ತದೆ.
$actionParams = @{
Execute = "powershell.exe"
Argument = '-ExecutionPolicy RemoteSigned -Command "Import-Module DNSServer.DebugLogParser; Get-ChildItem .\*.log | Sort-Object lastwritetime, Name -Descending | Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME -Delimiter \";\" -OutputType Both -ContextFilter Packet -OutputCulture sv-SE -CompressOutput"'
WorkingDirectory = "C:\Administration\Logs\DNS"
}
$Action = New-ScheduledTaskAction @actionParams
$Trigger = New-ScheduledTaskTrigger -Daily -At "2:00AM"
Register-ScheduledTask -TaskName "Process DNS Logs" -Action $Action -Trigger $Trigger -Description "Convert DNS debug logs to CSV daily"