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