param($web_app_url=$(read-host "Please provide web app url of the list to be delete (EG:'http://SSRAP1'):"))
$TextToFind = $(read-host "Please Provide the text to find")
if($ListToDelete -eq $null -or $ListToDelete -eq '')
{
throw "You must specify a text string to search for"
}
function LoadSharePointPowerShellEnviroment
{
write-host "Setting up Powershell enviroment for Sharepoint" -foregroundcolor Blue
Add-PSSnapin "Microsoft.Sharepoint.PowerShell" -ErrorAction SilentlyContinue
Write-host "Sharepoint PowerShell Snapin loaded." -foregroundcolor Green
}
function ScrubPages($nodeWeb2)
{
$pubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($nodeWeb2)
try
{
$pubPages = $pubWeb.GetPublishingPages($pubWeb)
foreach($pp in $pubPages)
{
$content = $pp.ListItem["Page Content"]
if($content -ne $null)
{
if ($content.Contains($TextToFind))
{
$data = @{"url" = $pubWeb.url.ToString() + "/pages/" + $pp.name.ToString() }
New-Object PSObject -Property $data
}
}
}
}
catch [Exception]
{
#It wasn't a publishing page
}
}
function RecurseNav([Microsoft.SharePoint.SPWeb]$nodeWeb)
{
$subWebs = $nodeWeb.GetSubwebsForCurrentUser()
ScrubPages($nodeWeb)
foreach ($nextweb in $subWebs)
{
RecurseNav($nextWeb)
}
}
try
{
if($web_app_url -eq $null -or $web_app_url -eq '')
{
throw "You must specify your server name. Value provided was null/empty."
}
$web = Get-SPWeb $web_app_url
RecurseNav($web) | Out-GridView
}
catch [Exception]
{
Write-Host -ForegroundColor Red "Error: $_"
}