Wednesday, July 8, 2020

The Powershell script to get last 30days deleted files report from all site collections and web applications in SharePoint 2013

This script pulls the deleted files report from all site collections in a Farm.


Add-PSSnapin Microsoft.SharePoint.PowerShell

# Creating folder with Todays date
$startTime = (Get-Date)

$date = Get-Date
$date = $date.ToString("yyyy-MM-dd-hh_mm_ss")

$Folder = New-Item -ItemType directory -Path "C:\Deletedfiles_reports.\$date"

# --------------------------------------------------------------------#

$webapps = Get-SPWebApplication

foreach ($webapp in $webapps){ 
 
$webappurl = $webapp.URL; 
$webappname = $webapp.DisplayName 
$sites=get-spsite -limit all -WebApplication $webappurl
 
foreach ($site in $sites) 

Write-Host "Site URL:" $site.url 
Write-Host $site.RootWeb.Title

# $Path = 'C:\Deletedfiles_reports\' + $site.RootWeb.Title + '.csv'

$Folderpath = $folder.ToString()

$Path = $Folderpath + '\' + $webapp.Name + '-' + $site.RootWeb.Title + '.csv'

$url= $site.url

$deleteFrom = -30

$report = $Path

New-Item $report -type file -Force | Out-Null

Add-Content $report "Name, Title, Deleted by, Deleted date, Path, File Guid"

$dateNow = Get-Date

$dateDiff = $dateNow.AddDays($deleteFrom)

$site1 = Get-SPsite $url

$site.Recyclebin | where { $_.deleteddate -ge $dateDiff} | foreach{ Add-Content $report "$($_.LeafName),$($_.Title),$($_.deletedbyname),$($_.deleteddate),$($_.Dirname),$($_.Id)"

 
}
}
    }

    $endTime = (Get-Date)

    #Send Email Start
function sendmail()
{
$ComputerName = $env:computername
  $smtpServer = (get-spwebapplication)[0] | %{$_.outboundmailserviceinstance.server} 
[string]$smtpClientIp=$smtpServer.get_Address()
$EmailFrom = "DoNotReply.SPPPD@xyz.com"
$EmailTo = "sathyambabu.savanam@xyz.com"
$EmailCc="Arunakumar.G@xyz.com"
$EmailBody = "Hi SharePoint Team, <br/><br/> The deleted files report from the PPD farm has been completed successfully  on " + $ComputerName + " in "+$Folderpath+"\"+ " folder.<br/><br/>" + "Start Time:" + $startTime + "  and End time:" + $endTime
$EmailBody += $OutputEamilHtml
$EmailBody += "<br/><br/>" + "Thanks," + "<br/>ECM SharePoint Team"
$EmailSubject = "Deleted files report from PPD farm completed successfully on Server : " + $ComputerName + "."
$SMTPServer = $smtpClientIp
  Send-MailMessage -From $EmailFrom -To $EmailTo -Cc $EmailCc -Subject $EmailSubject -body $EmailBody -SmtpServer "mailhost.cenovus.com" -Priority High -BodyAsHtml
"Emailed $subject on $dt to $EmailTo" | out-file -filepath "outfile.log" -append
 }

sendmail

   

No comments:

Post a Comment