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