Advertisement
D0cEvil

PowerShell - DeviceLock search

Dec 27th, 2022
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PowerShell 6.36 KB | Cybersecurity | 0 0
  1. Import-Module ActiveDirectory
  2. $Excel = New-Object -Com Excel.Application
  3. $Excel.visible = $True
  4.  
  5. $Excel = $Excel.Workbooks.Add()
  6. $Sheet = $Excel.Worksheets.Add()
  7. $Sheet1 = $Excel.Worksheets.Item(1)
  8. $Sheet2 = $Excel.WorkSheets.Item(2)
  9. $Sheet1.Name = "Доступные ПК"
  10. $Sheet2.Name = "Нет доступа"
  11.  
  12. $Sheet1.Cells.Item(3,1) = "Имя ПК"
  13. $Sheet1.Cells.Item(3,1).Interior.ColorIndex = 15
  14. $Sheet1.Cells.Item(3,1).Font.Bold = $true
  15. $Sheet1.Cells.Item(3,1).EntireColumn.AutoFit() | Out-Null
  16.  
  17. $Sheet1.Cells.Item(3,2) = "Наличие DeviceLock"
  18. $Sheet1.Cells.Item(3,2).Interior.ColorIndex = 15
  19. $Sheet1.Cells.Item(3,2).Font.Bold = $true
  20. $Sheet1.Cells.Item(3,2).EntireColumn.AutoFit() | Out-Null
  21.  
  22. $Sheet1.Cells.Item(3,3) = "Статус службы"
  23. $Sheet1.Cells.Item(3,3).Interior.ColorIndex = 15
  24. $Sheet1.Cells.Item(3,3).Font.Bold = $true
  25. $Sheet1.Cells.Item(3,3).EntireColumn.AutoFit() | Out-Null
  26.  
  27. $Sheet2.Cells.Item(1,1) = "Имя ПК"
  28. $Sheet2.Cells.Item(1,1).Interior.ColorIndex = 15
  29. $Sheet2.Cells.Item(1,1).Font.Bold = $true
  30. $Sheet1.Cells.Item(1,1).EntireColumn.AutoFit() | Out-Null
  31.  
  32. $Sheet2.Cells.Item(1,2) = "Наличие DeviceLock"
  33. $Sheet2.Cells.Item(1,2).Interior.ColorIndex = 15
  34. $Sheet2.Cells.Item(1,2).Font.Bold = $true
  35. $Sheet1.Cells.Item(1,2).EntireColumn.AutoFit() | Out-Null
  36.  
  37. $Sheet2.Cells.Item(1,3) = "Статус службы"
  38. $Sheet2.Cells.Item(1,3).Interior.ColorIndex = 15
  39. $Sheet2.Cells.Item(1,3).Font.Bold = $true
  40. $Sheet1.Cells.Item(1,3).EntireColumn.AutoFit() | Out-Null
  41.  
  42.  
  43.  
  44. foreach ($colorItem in $colSheets){
  45. $WorkBook = $colorItem.UsedRange                                                           
  46. $WorkBook.EntireColumn.AutoFit()
  47. clear
  48. }
  49. $intRow = 4
  50. #$intRow1 = 2
  51.  
  52. $a=0;
  53. $b=0;
  54. $c=0;
  55. $a=read-host "Проверить весь домен? Y/N"
  56.  
  57.  
  58. if ($a -eq "Y")
  59.     {
  60.         #Проверяем весь домен zmdb.ua
  61.         $c="OU=GP IVCHENKO-PROGRESS,DC=ZMDB,DC=UA"
  62.         $komp = Get-ADComputer -Filter * -SearchBase $c|select -exp name # Список ПК из OU
  63.         $kol=$komp.Count
  64.         $i=0
  65.         $servers = $komp
  66.         foreach ($Server in $Servers)
  67.         {
  68.             $i++
  69.             write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete ($i*100/$kol)
  70.             if (test-Connection -ComputerName $Server -Count 2 -Quiet)
  71.             {
  72.                 write-Host "$Server; Доступен" -ForegroundColor Green
  73.                
  74.             }
  75.             else
  76.             {
  77.                 write-Host "$Server; Нет доступа " -BackgroundColor Red
  78.  
  79.             }
  80.  
  81.         }      
  82.        
  83.     }
  84. else
  85.     {
  86.         if ($a -eq "N")
  87.         {
  88.             $b=read-host "Введите имя OU"
  89.  
  90.             $Row = 1
  91.             $Column = 1
  92.             $Sheet1.Cells.Item($Row, $Column) = 'Отчет о проверке OU '+$b
  93.            
  94.                 $Sheet1.Cells.Item($Row, $Column).Font.Size = 18
  95.                 $Sheet1.Cells.Item($Row, $Column).Font.Bold = $true
  96.                 $Sheet1.Cells.Item($Row, $Column).Font.ThemeFont = 1
  97.                 $Sheet1.Cells.Item($Row, $Column).Font.ThemeColor = 4
  98.                 $Sheet1.Cells.Item($Row, $Column).Font.ColorIndex = 55
  99.                 $Sheet1.Cells.Item($Row, $Column).Font.Color = 8210719
  100.  
  101.             # Объединяем диапазон ячеек
  102.             $Range = $Sheet1.Range('A1','G2')
  103.             $Range.Merge()
  104.  
  105.             #Проверка группы
  106.             $c="OU="+$b+",OU=Workstation,OU=GP IVCHENKO-PROGRESS,DC=ZMDB,DC=UA"
  107.             $komp = Get-ADComputer -Filter * -SearchBase $c|select -exp name # Список ПК из OU
  108.             $kol=$komp.Count
  109.             $i=0
  110.             $servers = $komp
  111.             foreach ($Server in $Servers)
  112.             {
  113.                 $i++
  114.                 write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete ($i*100/$kol)
  115.                 if (test-Connection -ComputerName $Server -Count 2 -Quiet)
  116.                 {
  117.                     write-Host "$Server; Доступен" -ForegroundColor Green  
  118.                      $Sheet1.Cells.Item($intRow, 1) = $Server
  119.                      $Sheet1.Cells.Item($intRow,1).EntireColumn.AutoFit() | Out-Null
  120.                  
  121.                             if ($Z = get-service -ComputerName $Server -Name devi*)
  122.                             {
  123.                                $Sheet1.Cells.Item($intRow,2) = $Z.DisplayName
  124.                                $Sheet1.Cells.Item($intRow,2).EntireColumn.AutoFit() | Out-Null
  125.                                $Sheet1.Cells.Item($intRow,3) = "Running"
  126.                                $Sheet1.Cells.Item($intRow,3).EntireColumn.AutoFit() | Out-Null
  127.                             }
  128.  
  129.                             else
  130.                                {
  131.                                $Sheet1.Cells.Item($intRow,2) = "Сервис не установлен"
  132.                                $Sheet1.Cells.Item($intRow,2).Interior.ColorIndex = 3
  133.                                $Sheet1.Cells.Item($intRow,2).EntireColumn.AutoFit() | Out-Null
  134.                                $Sheet1.Cells.Item($intRow,3) = "Невозможно отобразить статус"
  135.                                $Sheet1.Cells.Item($intRow,3).Interior.ColorIndex = 3
  136.                                $Sheet1.Cells.Item($intRow,3).EntireColumn.AutoFit() | Out-Null
  137.                                }                    
  138.                      
  139.  
  140.                      $intRow = $intRow + 1
  141.                 }
  142.                 else
  143.                 {
  144.                     write-Host "$Server; Нет доступа " -BackgroundColor Red
  145.                     $Sheet2.Cells.Item($intRow, 1) = $Server
  146.                     $Sheet2.Cells.Item($intRow, 1).EntireColumn.AutoFit() | Out-Null
  147.                     $Sheet2.Cells.Item($intRow, 2) = "Не доступно"
  148.                     $Sheet2.Cells.Item($intRow, 2).EntireColumn.AutoFit() | Out-Null
  149.                     $Sheet2.Cells.Item($intRow, 3) = "Не определен"
  150.                     $Sheet2.Cells.Item($intRow, 3).EntireColumn.AutoFit() | Out-Null
  151.                 }
  152.  
  153.                #$intRow = $intRow + 1
  154.             }      
  155.         }
  156.         else
  157.         {
  158.             #Проверка корректности ввода Да/Нет
  159.             write-host "ОШИБКА! Введите Y или N"
  160.         }
  161.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement