SharePointCommunity
Die deutschsprachige SharePoint Community für SharePoint 2013, 2010 und Office 365


SharePoint Warmup-Script

Blogs

Oliver Wirkus

Syndication

Certifications

 

Web 2.0

XING

 Add to Technorati Favorites

 Folge mir auf Twitter

 Delicious Bookmark this on Delicious

 

  Locations of visitors to this page

 

Warmup-Scripte sind für SharePoint ein absolutes must-have, denn sie verkürzen die Wartezeit beim Aufrufen von Seiten nach einem Neustart des Servers oder einem Recycling des Application Pools enorm.

Bei SharePoint 2010 (und wahrscheinlich auch bei SharePoint 2013) genügt es meiner bisherigen Erfahrung entsprechend, in einem Warmup-Script das Root-Web jeder Site-Collection einmal aufzurufen. Das explizite Aufrufen anderer Webs einer Site-Collection ist nicht unbedingt nötig - so zumindest meine Erfahrung.

Es gibt viele verschiedene Warmup-Scripte im Internet. Nachdem ich mehrfach gefragt wurde, welches Script ich in meinen Entwicklungsumgebungen verwende, möchte ich mein Script hier vorstellen. Wie gesagt: ich verwende dieses in meinen virtuellen Entwicklungsumgebungen. Für andere Umgebungen sind eventuell noch Anpassungen nötig.

Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue 
     
foreach ($site in get-SPSite) 
{     
   $rootweb = $site.RootWeb
   WRITE-HOST "Touching RootWeb: " $rootweb.url
 
   $request = [System.Net.WebRequest]::Create($rootweb.URL) 
   $request.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 
   $request.proxy = [System.Net.WebRequest]::DefaultWebProxy 
   $request.ContentType = "application/x-www-form-urlencoded" 
   $request.Method = "GET" 
               
   try
   { 
      $request.GetResponse().StatusCode 
   }  
   catch [Net.WebException]
   { 
      $WebExceptionMessage = $_.Exception.Message 
      WRITE-HOST "Folgender Fehler ist aufgetreten: " + $WebExceptionMessage 
   } 
}

Es macht natürlich wenig Sinn, dieses Script als Administrator aufzurufen. Vielmehr ist es besser, dafür einen eigenen Account zu verwenden. Dazu sind aber noch ein paar zusätzliche Einstellungen nötig:

- der Warmup-Script-Account muss natürlich volle Leserechte haben. Dies stellt man in den User Policies der Web-Anwenungen ein.

- damit dieser Account über das Script auf SharePoint zugreifen darf, benötigt er zusätzlich noch die Rolle “SharePoint_Shell_Access”. Das kann man am einfachsten mit PowerShell erledigen:

foreach ($database in Get-SPContentdatabase) { Add-SPShellAdmin -database $database.id -UserName DOMÄNE\Konto}

- damit dieses Scipt von dem entsprechenden Account auch als geplanter Task ausgeführt werden darf, muss man diesem Account noch das Recht “Log on as batch job” zuweisen. Wo man das macht, zeigt die folgende Abbildung:

image

Add to Technorati Favorites Folge mir auf Twitter FourSquareLogo

Bereitgestellt 20 Jul 2012 10:49 von Oliver Wirkus
Gespeichert unter: ,

Kommentare

Henning Eiben geschrieben re: SharePoint Warmup-Script
on 21 Sep 2012 11:26

Das aufrufen von einzelnen Seiten in einer Site-Collection macht u.U. schon denn, wenn dort z.B. einzelne WebParts vorhanden sind, die vorher noch nicht ge-JITed wurden. Wenn man also ein paar verschiedene Seiten anspricht, so dass ich vielleicht die am meisten verwendeten WebParts vorhanden sind, dann dürfte die Gesamt-Leistung des Portals verbessert werden.

Kommentieren

(erforderlich)
(optional)
(erforderlich)  
Erinnern Sie sich an mich?