Скрипт по сбору статистики использования файлов на Windows

Тематические термины: Windows , Powershell .

Данный скрипт позволит получить сведения о типах файлов, которые есть на сервере и некоторые по ним сведения (количество, размер, дата обращения).

Пример скрипта

  1. $FilesDir = «D:Отделы»
  2. $FileResult = «C:Tempresult.csv»
  3. if ($args[0]) { $FilesDir = $args[0] }
  4. $FilesArray = @{}
  5. $i = 0
  6. $Count = 0
  7. Get-ChildItem $FilesDir -Recurse -Attributes !Directory+!System | ForEach-Object {
  8. $fileName = $_.Name
  9. $fileFullName = $_.VersionInfo.FileName
  10. if ($fileName -and $fileFullName) {
  11. $Extension = $fileFullName.split(‘.’)[-1]
  12. $FileInfo = (Get-Item $fileFullName)
  13. $Length = $FileInfo.Length
  14. $CreationTime = $FileInfo.CreationTime
  15. $LastWriteTime = $FileInfo.LastWriteTime
  16. $LastAccessTime = $FileInfo.LastAccessTime
  17. if (!$FilesArray[$Extension]) {
  18. $FilesArray[$Extension] = @{}
  19. $FilesArray[$Extension][‘size’] = @()
  20. $FilesArray[$Extension][‘CreationTime’] = @()
  21. $FilesArray[$Extension][‘LastWriteTime’] = @()
  22. $FilesArray[$Extension][‘LastAccessTime’] = @()
  23. }
  24. $FilesArray[$Extension].add($fileFullName,$fileName)
  25. $FilesArray[$Extension][‘size’] += $Length
  26. $FilesArray[$Extension][‘CreationTime’] += $CreationTime
  27. $FilesArray[$Extension][‘LastWriteTime’] += $LastWriteTime
  28. $FilesArray[$Extension][‘LastAccessTime’] += $LastAccessTime
  29. $Count++
  30. Write-Host «$Count … » -NoNewLine
  31. }
  32. }
  33. echo «Extension`tFilesCount`tMaxSize`tMinSize`tSumSize`tMaxCreationTime`tMinCreationTime`tMaxLastWriteTime`tMinLastWriteTime`tMaxLastAccessTime`tMinLastAccessTime» > $FileResult
  34. $FilesArray.Keys | % {
  35. $Extension = $_
  36. $FilesCount = $FilesArray[$_][‘size’].Count
  37. $i += $FilesCount
  38. $MaxSize = ($FilesArray[$_][‘size’] | measure -Maximum).Maximum
  39. $MinSize = ($FilesArray[$_][‘size’] | measure -Minimum).Minimum
  40. $SumSize = ($FilesArray[$_][‘size’] | measure -Sum).Sum
  41. $MaxCreationTime = ($FilesArray[$_][‘CreationTime’] | measure -Maximum).Maximum
  42. $MinCreationTime = ($FilesArray[$_][‘CreationTime’] | measure -Minimum).Minimum
  43. $MaxLastWriteTime = ($FilesArray[$_][‘LastWriteTime’] | measure -Maximum).Maximum
  44. $MinLastWriteTime = ($FilesArray[$_][‘LastWriteTime’] | measure -Minimum).Minimum
  45. $MaxLastAccessTime = ($FilesArray[$_][‘LastAccessTime’] | measure -Maximum).Maximum
  46. $MinLastAccessTime = ($FilesArray[$_][‘LastAccessTime’] | measure -Minimum).Minimum
  47. Write-Host «[$i/$Count]»
  48. echo «$Extension`t$FilesCount`t$MaxSize`t$MinSize`t$SumSize`t$MaxCreationTime`t$MinCreationTime`t$MaxLastWriteTime`t$MinLastWriteTime`t$MaxLastAccessTime`t$MinLastAccessTime» >> $FileResult
  49. }

EnglishRussianUkrainian