Die meisten Warmup Scripts für SharePoint die mittels Powershell realisiert sind, kümmern sich nur um die Startseiten der Root Sites in den Sitecollections.
Das folgende Script ruft alle Sites in allen Sitecollections in allen Webapps auf.
1: Clear-Host
2: Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue
3:
4: [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
5: [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration")
6:
7: [System.Net.WebRequest]::DefaultWebProxy = $null
8:
9: $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local
10:
11: Write-Host("Get all web applications within each web service")
12: $websvcs = @($farm.Services | where -FilterScript {$_.GetType() -eq [Microsoft.SharePoint.Administration.SPWebService]})
13:
14: foreach ($websvc in $websvcs) {
15: foreach ($webapp in ($websvc.WebApplications | where -FilterScript {$_.GetType() -eq [Microsoft.SharePoint.Administration.SPWebApplication]})) {
16: $webappurl = $webapp.Url
17: $webappname = $webapp.Name
18: Write-Host("Get all site collections within web application '$webappname ($webappurl)'") -ForeGroundColor Green
19:
20: foreach ($sitecollection in $webapp.Sites) {
21: $sitecollectionurl = $sitecollection.Url
22: Write-Host("Get all webs of '$sitecollectionurl' site collection") -ForeGroundColor Yellow
23:
24: foreach ($web in $sitecollection.AllWebs) {
25: $webname = $web.Title
26: $weburl = $web.Url
27: Write-Host("Hitting web '$webname ($weburl)'");
28:
29: $request = [System.Net.WebRequest]::Create($weburl)
30: $request.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
31: $request.proxy = [System.Net.WebRequest]::DefaultWebProxy
32: $request.ContentType = "application/x-www-form-urlencoded"
33: $request.Method = "GET"
34: $request.GetResponse().StatusCode
35: }
36: }
37: }
38: }