Advertisement
DraconiusNX

Untitled

Jan 25th, 2025
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Функция за добавяне на timestamp
  2. function Add-Timestamp {
  3.     $timestamp = Get-Date -Format "HH:mm:ss dd-MM-yyyy"
  4.     return $timestamp
  5. }
  6.  
  7. # Получаване на пътя до папката "Documents"
  8. $DocumentsPath = [Environment]::GetFolderPath('MyDocuments')
  9.  
  10. # Път към новата папка "Logs"
  11. $LogsPath = Join-Path $DocumentsPath "Logs"
  12.  
  13. # Проверка дали папката "Logs" съществува, ако не съществува, я създаваме
  14. if (-not (Test-Path -Path $LogsPath)) {
  15.     New-Item -Path $LogsPath -ItemType Directory
  16. }
  17.  
  18. # Път към JSON лог файла в новата папка
  19. $LogFile = Join-Path $LogsPath "DefenderScanLog.json"
  20.  
  21. # Изтриване на съдържанието на лог файла (ако съществува)
  22. if (Test-Path -Path $LogFile) {
  23.     Clear-Content -Path $LogFile
  24. }
  25.  
  26. # Използване на променлива за избор на типа на сканиране: 'Quick' или 'Full'
  27. $ScanType = "Quick"  # Може да промениш на 'Full', за да стартираш пълно сканиране
  28.  
  29. # Получаване на името на компютъра
  30. $ComputerName = (Get-ComputerInfo).CsName
  31.  
  32. # Масив за съхранение на стъпките от сканирането
  33. $scanLog = @()
  34.  
  35. # Добавяне на информация за компютъра като отделен обект
  36. $logEntry = @{
  37.     ComputerName = $ComputerName
  38. }
  39. $scanLog += $logEntry
  40.  
  41. # Добавяне на началния запис - стартиране на сканирането
  42. $logEntry = @{
  43.     Timestamp = Add-Timestamp
  44.     Step = "Scan Started"
  45.     Message = "Starting Windows Defender $ScanType scan."
  46. }
  47. $scanLog += $logEntry
  48.  
  49. # Избиране на типа сканиране въз основа на променливата
  50. if ($ScanType -eq "Quick") {
  51.     # Стартиране на бързо сканиране
  52.     Start-MpScan -ScanType QuickScan
  53. } elseif ($ScanType -eq "Full") {
  54.     # Стартиране на пълно сканиране
  55.     Start-MpScan -ScanType FullScan
  56. } else {
  57.     Write-Host "Невалиден тип на сканиране: $ScanType"
  58.     exit
  59. }
  60.  
  61. # Изчакване за резултати (примерно 10 секунди, можеш да настроиш времето)
  62. Start-Sleep -Seconds 3
  63.  
  64. # Проверка за резултати от сканирането
  65. $ScanResults = Get-MpThreat
  66.  
  67. # Добавяне на резултати от сканирането
  68. if ($ScanResults) {
  69.     $logEntry = @{
  70.         Timestamp = Add-Timestamp
  71.         Step = "Scan Completed"
  72.         Message = "$ScanType scan completed with threats detected."
  73.         ThreatsDetected = $ScanResults
  74.     }
  75. } else {
  76.     $logEntry = @{
  77.         Timestamp = Add-Timestamp
  78.         Step = "Scan Completed"
  79.         Message = "$ScanType scan completed with no threats detected."
  80.         ThreatsDetected = "No threats detected."
  81.     }
  82. }
  83. $scanLog += $logEntry
  84.  
  85. # Добавяне на края на сканирането
  86. $logEntry = @{
  87.     Timestamp = Add-Timestamp
  88.     Step = "Scan Ended"
  89.     Message = "$ScanType scan completed."
  90. }
  91. $scanLog += $logEntry
  92.  
  93. # Записване на целия лог в JSON формат
  94. $scanLog | ConvertTo-Json -Depth 3 | Set-Content -Path $LogFile -Encoding utf8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement