Guest User

Untitled

a guest
Nov 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. Add-PSSnapin Microsoft.SharePoint.PowerShell
  2.  
  3. function Get-CrawlStatisticsForUrl
  4. {
  5. [cmdletbinding()]
  6. param
  7. (
  8. [Parameter(Mandatory=$true)][string]$Url,
  9. [Parameter(Mandatory=$false)][DateTime]$StartDate = [DateTime]::MinValue,
  10. [Parameter(Mandatory=$false)][DateTime]$EndDate = [DateTime]::MaxValue,
  11. [Parameter(Mandatory=$false)][switch]$ExactMatch
  12. )
  13.  
  14. begin
  15. {
  16. $ssa = Get-SPEnterpriseSearchServiceApplication
  17. $crawLog = New-Object Microsoft.Office.Server.Search.Administration.CrawlLog($ssa)
  18.  
  19. $statusMessageCounts = [PSCustomObject] @{
  20. Url = $Url
  21. Successes = 0
  22. Warnings = 0
  23. Errors = 0
  24. }
  25. }
  26. process
  27. {
  28. if ($crawLog )
  29. {
  30. $dt = $crawLog.GetCrawledUrls(
  31. $false, # GetCountOnly
  32. [int]::MaxValue, # maxRows
  33. $Url, # urlQueryString
  34. (-not $ExactMatch.IsPresent), # isLike
  35. -1, # contentSourceID -1 == 'All'
  36. -1, # errorLevel -1 == 'All'
  37. -1, # errorID -1 == 'All"
  38. $StartDate, # startDateTime
  39. $EndDate # endDateTime
  40. )
  41.  
  42. foreach( $row in $dt.Rows )
  43. {
  44. switch( $row.ErrorLevel )
  45. {
  46. 0 { $statusMessageCounts.Successes++ }
  47. 1 { $statusMessageCounts.Warnings++ }
  48. 2 { $statusMessageCounts.Errors++ }
  49. }
  50. }
  51. }
  52. }
  53. end
  54. {
  55. $statusMessageCounts
  56. }
  57.  
  58. }
  59.  
  60. $results = @()
  61.  
  62. # get the stats for all the sites in a specific database
  63.  
  64. Get-SPSite -Limit All -ContentDatabase "SP2013_CONTENT_001" | % { $results += Get-CrawlStatisticsForUrl -Url $_.Url }
  65.  
  66. # dump stats to screen
  67.  
  68. $results | SORT Url | FT Url, Successes, Warnings, Errors -AutoSize
Add Comment
Please, Sign In to add comment