Ir al contenido principal

SharePoint 2007, 2010 or 2013 Application Warm-up Script

 

   1: #//------------------------------------------------------------------------ 
   2: #// 
   3: #// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
   4: #// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
   5: #// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
   6: #// PARTICULAR PURPOSE. 
   7: #// 
   8: #//  
   9: #// 
  10: #// Research and ideas for this scritp come from here  
  11: #// http://kirkhofer.wordpress.com/2008/10/18/sharepoint-warm-up-script/ 
  12: #//----------------------------------------------------------------------------- 
  13:  
  14: # TEST IN STAGING ENVIRONMENT FIRST, THEN IN PRODUCTION IF TESTS PASSED 
  15:  
  16:  
  17: cls 
  18:  
  19: function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null) 
  20: { 
  21: $wc = new-object net.webclient 
  22: if($cred -eq $null) 
  23: { 
  24: $cred = [System.Net.CredentialCache]::DefaultCredentials; 
  25: } 
  26: $wc.credentials = $cred; 
  27: return $wc.DownloadString($url); 
  28: } # end Function 
  29:  
  30:  
  31: #This passes in the default credentials needed. You can run this task as a user that has a Policy  
  32: # above all the Web Applications by manually adding the correct permissions 
  33: $cred = [System.Net.CredentialCache]::DefaultCredentials; 
  34: # or 
  35: #$cred = new-object System.Net.NetworkCredential("username","password","machinename") 
  36:  
  37: #Run manually like this to warm up a specific page (2007 or 2010) 
  38: #Change these URL's to suit your environment. Simply add more lines if you need more. 
  39: $html = get-webpage -url "http://2013.rlan.ca/pwa/projects.aspx" -cred $cred 
  40: $html = get-webpage -url "http://2013.rlan.ca/pwa/resources.aspx" -cred $cred 
  41: $html = get-webpage -url "http://2013.rlan.ca/pwa/Admin/queue.aspx" -cred $cred 
  42:  
  43: <# 
  44: #### SharePoint 2010 Section  
  45:  
  46: # Comment this out if running SharePoint 2007 
  47: # will warm up the first 15 sites in all web apps  
  48:  
  49: foreach ($WebApp in (Get-SPWebApplication -IncludeCentralAdministration)) 
  50: { 
  51:     $sites = $WebApp | Get-SPSite | get-spweb -Limit 15   
  52:      foreach($site in $sites) 
  53:      { 
  54:      write-host "Warming up " $site.Url 
  55:      $html= get-webpage -url $site.Url -cred $cred  
  56:      $site.Dispose(); 
  57:      }    # end loop for each sites 
  58:  
  59:  }    # end foreach web app 
  60:   
  61:  #### End Sharepoint 2010 Section 
  62:  #> 
  63:  
  64:  
  65:  
  66: ###### SharePoint 2007 Section  
  67:  
  68: # Remove if running SharePoint 2010 
  69: $QuantitySites = 2  # how many site collections in each web app to warm up 
  70: [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") >$null 
  71: $WebSrv = [microsoft.sharepoint.administration.spwebservice]::ContentService 
  72: $webApps = $WebSrv.WebApplications 
  73: foreach ($webApp in $WebApps) 
  74: {      
  75:     $i = 0 
  76:     $sites=$WebApp.sites 
  77:     foreach ($site in $sites) 
  78:     {  
  79:          $i = $i + 1  
  80:          If ($i -lt $QuantitySites) 
  81:          {     
  82:          write-host "Warming up " $site.Url 
  83:          $html= get-webpage -url $site.Url -cred $cred  
  84:          } 
  85:      $Site.Dispose()  
  86:      } 
  87: } 
  88:  
  89: ###### End SharePoint 2007 Section 

Comentarios