ಬಳಕೆ ಉದಾಹರಣೆಗಳು

ನೀವು ಇಲ್ಲಿ ಈ ಮೋಡ್ಯೂಲ್ ಅನ್ನು ನೈಜ ಜಗತ್ತಿನ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು. ಈ ಉದಾಹರಣೆಗಳು ಮೋಡ್ಯೂಲ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೇಗೆ ಅನ್ವಯಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿಮಗೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.

ಇವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಆಳವಾದ ಮತ್ತು ಸಂದರ್ಭಪೂರ್ಣ ಉದಾಹರಣೆಗಳು. ನೀವು ಮೋಡ್ಯೂಲ್‌ನ ಆಜ್ಞೆಗಳ ಬಳಕೆಯನ್ನು ಮಾತ್ರ ತಿಳಿದುಕೊಳ್ಳಲು ಬಯಸಿದರೆ, command reference ಅನ್ನು ಪರಿಶೀಲಿಸಿ.

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 ಗಳಲ್ಲಿ ಸुसಂಗತ ಪರಿವರ್ತನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು
  • ನಿರೀಕ್ಷಿತ ಔಟ್‌ಪುಟ್ ಸ್ಥಳ ಮತ್ತು ಹೆಸರು
  • ಸಂಗ್ರಹಣಾ ಜಾಗವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಐಚ್ಛಿಕ ಸಂಕುಚಿತತೆ
  • ದೈನಂದಿನ ತ್ವರಿತ rollup ಗಾಗಿ ಐಚ್ಛಿಕ ಅಂಕಿಅಂಶ ಔಟ್‌ಪುಟ್‌ಗಳು
  • ಅತೀ ಕಡಿಮೆ ಹೋಸ್ಟ್-ಪಾರ್ಶ್ವದ ಅಪಾಯ, ಸ್ಪಷ್ಟ ಪುನರಾರಂಭ ಮತ್ತು ಸ್ವಚ್ಛತೆ ಪರಿಗಣನೆಗಳೊಂದಿಗೆ

ಶಿಫಾರಸು ಮಾಡಿದ ವಾಸ್ತುಶಿಲ್ಪ

ಸಂಗ್ರಹಣಾ ಮಾದರಿ: ಸ್ಥಳೀಯ ಪರಿವರ್ತನೆ + ಕೇಂದ್ರಿತ ಪಲ್ಲಟ

  1. ಪ್ರತಿ DC ಡಿಸ್ಕ್‌ಗೆ DNS ಡಿಬಗ್ ಲಾಗ್‌ಗಳನ್ನು ಬರೆಯುತ್ತದೆ ಮತ್ತು ರೋಲ್ಓವರ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.
  2. ಪ್ರತಿ DC ತಿರುಗಿದ *.log ಫೈಲ್‌ಗಳನ್ನು ಡೇಟಾ CSV ಮತ್ತು ಅಂಕಿಅಂಶ CSV ಗಳಾಗಿ ಪರಿವರ್ತಿಸಿ, ನಂತರ ಅವುಗಳನ್ನು *.zip ಆಗಿ ಸಂಕುಚಿತಗೊಳಿಸುತ್ತದೆ (ಟಾಸ್ಕ್ ಶೆಡ್ಯೂಲರ್ ಮೂಲಕ).
  3. ಔಟ್‌ಪುಟ್‌ಗಳು ಲಾಗ್ ಫೈಲ್‌ಗಳ ಪಕ್ಕದಲ್ಲೇ ಬರೆಯಲ್ಪಡುವುದರಿಂದ ಪೈಪ್‌ಲೈನ್ ಸರಳವಾಗಿರುತ್ತದೆ.
  4. ಕೇಂದ್ರಿತ ಸರ್ವರ್ *.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\Scripts
  • C:\Administration\Logs\DNSServer

ಕೊಟ್ಟಿರುವ ಬ್ಯಾಕಪ್ Convert-DNSDebugLogFile ಈಗಾಗಲೇ DC ಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ಪರಿವರ್ತನೆ ಟಾಸ್ಕ್ ವಿಂಡೋಸ್ ಪವರ್‌ಶೆಲ್ 5.1 ಅನ್ನು -NoProfile ಜೊತೆಗೆ ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ಮೋಡ್ಯೂಲ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಮೋಡ್ಯೂಲ್ ಅನ್ನು LocalSystem ಗೆ ಗೋಚರವಾಗುವ ಯಂತ್ರ-ವ್ಯಾಪಕ ವಿಂಡೋಸ್ ಪವರ್‌ಶೆಲ್ ಮೋಡ್ಯೂಲ್ ಮಾರ್ಗದಲ್ಲಿ ಸ್ಥಾಪಿಸಬೇಕು. ಶಿಫಾರಸು ಮಾಡಿದ ವಿಧಾನಗಳು:

  • DNSServer.DebugLogParser ಅನ್ನು DC ಗಳಲ್ಲಿ ಸ್ಥಾಪಿಸಿ. ಉದಾಹರಣೆಗೆ, ಪವರ್‌ಶೆಲ್ ಗ್ಯಾಲರಿ ಮೂಲಕ (ನೀತಿ ಅನುಮತಿಸಿದರೆ).
  • ಆಂತರಿಕ ರೆಪೋ / ಫೈಲ್ ಶೇರ್ ಮೂಲಕ ಮೋಡ್ಯೂಲ್ ಅನ್ನು ನಿಯೋಜಿಸಿ, ಇದರಿಂದ ಅದು $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 ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಹೊಸ (ಸಕ್ರಿಯ) ಲಾಗ್ ಫೈಲ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. Convert-DNSDebugLogFile DNS ಸರ್ವರ್ ಈಗಾಗಲೇ ತೆರೆಯಿರುವ ಲಾಗ್ ಓದಲು ಸಾಧ್ಯವಿದೆ, ಆದರೆ ಆ ಫೈಲ್ ಓದುವಾಗ ಬದಲಾಗುತ್ತದೆ: ಔಟ್‌ಪುಟ್ ಹೊಸ ಎಂಟ್ರಿಗಳನ್ನು ತಪ್ಪಿಸಬಹುದು ಅಥವಾ ಕತ್ತರಿಸಿದ ದಾಖಲೆ ಜೊತೆ ಮುಗಿಯಬಹುದು, ಮತ್ತು ಎರಡು ಓಟಗಳು ಒಂದೇ ಫಲಿತಾಂಶ ನೀಡುವುದಿಲ್ಲ. ಸಕ್ರಿಯ ಫೈಲ್ ಅನ್ನು ತಪ್ಪಿಸುವುದು ನಿಯೋಜಿತ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪುನರಾವರ್ತನೀಯವಾಗಿರಿಸುತ್ತದೆ.
  • ಅಂದರೆ ಪ್ರಸ್ತುತ ಡೇಟಾ ಮಾತ್ರ ರೋಲ್ಓವರ್ ನಂತರ ರಫ್ತು ಮಾಡಲಾಗುತ್ತದೆ; ಕಡಿಮೆ ಪ್ರಮಾಣದ 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\... ಗೆ ಬರೆಯುತ್ತದೆ (ಅಥವಾ ನಕಲಿಸುತ್ತದೆ) (ಟಾಸ್ಕ್ SYSTEM ಆಗಿ ನಡೆಯುತ್ತಿದ್ದರೆ DC ಕಂಪ್ಯೂಟರ್ ಖಾತೆಗಳಿಗೆ ಅಥವಾ ಡೊಮೇನ್ ನಿಯಂತ್ರಕರು ಗುಂಪಿಗೆ ಶೇರ್ ಮತ್ತು NTFS ಹಕ್ಕುಗಳನ್ನು ನೀಡಿ)
  • ಪಲ್ಲಟ ಮಾದರಿ: ಕೇಂದ್ರಿತ ಕೆಲಸ \\dc\C$\Administration\Logs\DNSServer\*.zip ಓದುತ್ತದೆ (ಕಡಿಮೆ ಇಷ್ಟಪಡಲ್ಪಟ್ಟದ್ದು; ಆಡಳಿತ ಶೇರ್‌ಗಳು ಅಗತ್ಯ)
  • ಏಜೆಂಟ್ ಫಾರ್ವರ್ಡರ್: SIEM / ಲಾಗ್ ಪೈಪ್‌ಲೈನ್ *.zip ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಸಾಗಿಸುತ್ತದೆ

ಕಾರ್ಯಾಚರಣೆ ಪರಿಗಣನೆಗಳು

  • ಕನಿಷ್ಠ ಹಕ್ಕು: ಟಾಸ್ಕ್‌ಗಳು SYSTEM ಆಗಿ ನಡೆಯುತ್ತವೆ; ಸ್ಥಳೀಯ ಫೋಲ್ಡರ್‌ಗಳು ಬರೆಯಬಹುದಾಗಿರಬೇಕು ಮತ್ತು ಯಾವುದೇ UNC ಗುರಿಗಳು ಬಳಕೆಯಾದರೆ ಕಂಪ್ಯೂಟರ್ ಖಾತೆಗೆ ಪ್ರವೇಶ ನೀಡಬೇಕು.
  • ಸಹಿ ನೀತಿ: ಎರಡೂ ಟಾಸ್ಕ್‌ಗಳು -ExecutionPolicy RemoteSigned ಬಳಸುತ್ತವೆ; ನಿಯಮಾನುಸಾರ ನಿಯೋಜಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಮೋಡ್ಯೂಲ್ ಅನ್ನು ಸಹಿ ಮಾಡಿರಿ ಅಥವಾ ಅನ್ಬ್ಲಾಕ್ ಮಾಡಿ.
  • ಡಿಸ್ಕ್ ಬಳಕೆ: -CompressOutput ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಆದರೆ ಈ ಕಾರ್ಯಪ್ರವಾಹ ಮೂಲ ಲಾಗ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದಿಲ್ಲ; ರಿಟೆನ್ಷನ್ ಮತ್ತು ಸ್ವಚ್ಛತೆ ಯೋಜಿಸಿ.
  • ಪುನಃ ಪ್ರಕ್ರಿಯೆ ವರ್ತನೆ: ನೀವು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದ ಲಾಗ್‌ಗಳನ್ನು ಆರ್ಕೈವ್ ಅಥವಾ ಅಳಿಸುವುದಿಲ್ಲದಿದ್ದರೆ, ಪರಿವರ್ತನೆ ಟಾಸ್ಕ್ ನಂತರದ ಓಟಗಳಲ್ಲಿ ಪ್ರತಿ ಸಕ್ರಿಯವಲ್ಲದ *.log ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ. ಇದು ಸರಳ ಮತ್ತು ದೃಢವಾಗಿದೆ, ಆದರೆ ನಿಮ್ಮ ಸಂಗ್ರಹಕ ಡುಪ್ಲಿಕೇಟ್‌ಗಳನ್ನು ತಡೆಯದಿದ್ದರೆ ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಮರುಬರೆಯಬಹುದು ಮತ್ತು ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಇಂಜೆಕ್ಷನ್‌ನಲ್ಲಿ ನಕಲು ಉಂಟಾಗಬಹುದು.
  • ಬಹು-DC ಸಂಯೋಜನೆ: -ComputerName $env:COMPUTERNAME ಸೇರಿಸಲಾಗಿದೆ ಆದ್ದರಿಂದ ಸಂಯೋಜಿತ ಡೇಟಾಸೆಟ್‌ಗಳು ಟ್ರೇಸಬಲ್ ಆಗಿರುತ್ತವೆ. ಗಮನಿಸಿ -ComputerName ಕೇವಲ ಔಟ್‌ಪುಟ್‌ಗೆ ಲೇಬಲ್ ಹಾಕುತ್ತದೆ — ಇದು ಯಾವುದೇ ದೂರದ ಸಂಪರ್ಕವನ್ನು ಮಾಡುತ್ತಿಲ್ಲ.
  • ನೆಟ್‌ವರ್ಕ್ ಶೇರ್‌ಗಳು: Convert-DNSDebugLogFile ಮೂಲ ಲಾಗ್‌ಗಳನ್ನು SMB/UNC ಮಾರ್ಗಗಳಿಂದ ಓದಲು ಸಾಧ್ಯವಿದೆ, ಆದರೆ ಸ್ಥಳೀಯವಾಗಿ ಪರಿವರ್ತಿಸಿ ಸಂಕುಚಿತ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಗಿಸುವುದು ದೊಡ್ಡ ಕಚ್ಚಾ ಲಾಗ್‌ಗಳಿಗೆ ಉತ್ತಮ ಮಾದರಿ. ನೀವು UNC ಮಾರ್ಗವನ್ನು ಬಳಸಿದರೆ, SYSTEM ಆಗಿ ನಡೆಯುವ ಟಾಸ್ಕ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಕಂಪ್ಯೂಟರ್ ಖಾತೆಯಾಗಿ ಪ್ರಾಮಾಣೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಅಲ್ಲಿ ಶೇರ್ ಮತ್ತು NTFS ಹಕ್ಕುಗಳನ್ನು ಅಗತ್ಯವಿದೆ.
  • ದಿನಾಂಕ ಸ್ವರೂಪ: -OutputCulture sv-SE ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬಳಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ಗಳು 2026-01-20 23:00:16 ಆಗಿ ಬರೆಯಲ್ಪಡುತ್ತವೆ. ಆ ಸ್ವರೂಪವನ್ನು SQL ಸರ್ವರ್, ಪವರ್ BI ಮತ್ತು ಹೆಚ್ಚಿನ ಇಂಪೋರ್ಟ್ ಉಪಕರಣಗಳು ಯಾವುದೇ ಲೊಕೇಲ್‌ನಿಂದಲೂ ಸೂಚನೆ ಇಲ್ಲದೆ ಓದುತ್ತವೆ.
  • ಮಾನ್ಯತೆ: ಹೆಡರ್ ಮಾನ್ಯತೆ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಟಾಸ್ಕ್ -SkipHeaderValidation ಬಳಸುವುದಿಲ್ಲ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ).

ಮಾನ್ಯಗೊಳಿಸಿ ಮತ್ತು ಹೊಂದಿಸಿ (ZIP ಬಳಸಿ)

ZIP ಆರ್ಕೈವ್ ಅನ್ನು ಉಲ್ಲೇಖ ಜಾರಿಗೊಳಿಸುವಿಕೆ ಎಂದು ಬಳಸಿ, ನಂತರ ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ನಿಮ್ಮ ಪರಿಸರಕ್ಕೆ ಹೊಂದಿಸಿ:

  • ಗುರಿ ವ್ಯಾಪ್ತಿ: ಯಾವ DCಗಳು / OUs ನೀತಿಯನ್ನು ಪಡೆಯುತ್ತವೆ
  • ಕಾರ್ಯಾಚರಣೆ ಗುರುತು: ಎರಡೂ ನಿಯೋಜಿತ ಟಾಸ್ಕ್‌ಗಳು ಉದ್ದೇಶಿತ ಲಾಗಿನ್ ಪ್ರಕಾರ (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.DebugLogParser
  • SqlServer

ಅವಶ್ಯಕತೆ ಇದ್ದರೆ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ:

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 ಉದಾಹರಣೆ ಸಂಪೂರ್ಣ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:

  1. ಅಗತ್ಯವಿರುವ ಮೋಡ್ಯೂಲ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ
  2. DNS ಡಿಬಗ್ ಲಾಗ್ ಅನ್ನು CSV ಗೆ ಪರಿವರ್ತಿಸಿ
  3. ರಚಿಸಲಾದ CSV ಅನ್ನು ಲೋಡ್ ಮಾಡಿ
  4. ಸಾಲುಗಳನ್ನು 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"