Hi There,
I am trying a warm script on 2013 but some sites fail to open.
Reason:
Site: https:// xyz.netException calling "GetResponse" with "0" argument(s): "The remote server returned an error: (401) Unauthorized."
At C:\Users\zspsetupdev\Desktop\Newspwakeup\sa.ps1:86 char:5
+ $response = $request.GetResponse()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
Failed waking :
----------------------------
Here is my code below, Please suggest :(
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } $InputfileName="SP2013-warmup-extra.txt"; $LogfileName="scriptrun.log"; $ScriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition; $extrasitelistfile= $ScriptPath + "\" +$InputfileName; $Logfile=$ScriptPath + "\" + $LogfileName; #Check if log file exists and delete. Each time new file is created if (Test-Path ($Logfile)) { Remove-Item $Logfile } Function LogWrite { Param ([string]$logstring) write-host $logstring; $now=Get-Date -format "dd-MMM-yyyy HH:mm:ss" ; $msg= $now + " :: " + $logstring; Add-content $Logfile -value $msg } Logwrite $extrasitelistfile if (Test-Path ($extrasitelistfile)) { Logwrite $extrasitelistfile "...File exists"; } else { Logwrite $extrasitelistfile "...File Not found" ; } function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null) { $wc = new-object net.webclient if($cred -eq $null) { $cred = [System.Net.CredentialCache]::DefaultCredentials; } $wc.credentials = $cred; return $wc.DownloadString($url); } function LoadSite([string]$url,[System.Net.NetworkCredential]$cred=$null) { if($cred -eq $null) { $cred = [System.Net.CredentialCache]::DefaultCredentials; } $request = [System.Net.WebRequest]::Create($url) $request.AllowAutoRedirect = $true $request.proxy = [System.Net.WebRequest]::DefaultWebProxy $request.Credentials = $cred $request.ContentType = "application/x-www-form-urlencoded" $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED","f") $request.Method="GET" $request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" $response = $request.GetResponse() return $response.StatusCode } function WarmupSite([string]$url,[System.Net.NetworkCredential]$cred=$null) { Logwrite "Site: $url" $result = LoadSite -url $url -cred $cred; If ($result -eq "OK") { Logwrite "Woke up $($_.Url)";"Woke up $($_.Url)"|write-host -back darkgreen } else { Logwrite "Failed waking $($_.url): $result";"Failed waking $($_.url): $result" | write-host -back darkred } } #This passes in the default credentials needed. If you need specific #stuff you can use something else to elevate basically the permissions. #Or run this task as a user that has a Policy above all the Web #Applications with the correct permissions Logwrite "Starting warmup script" Logwrite "Setting default credentials" $cred = [System.Net.CredentialCache]::DefaultCredentials; Logwrite "Getting web applications" # Get all the webapplications on the farm and loop through individual sites $apps = get-spwebapplication -includecentraladministration foreach ($app in $apps) { $sites = get-spsite -webapplication $app.url -limit all foreach ($site in $sites) { WarmupSite -url $site.Url -cred $cred; } } Logwrite "Reading site url's from the file" # Warm up other sites specified in SP2010-warmup-extra.txt file (such as Search, other external URL) if (test-path $extrasitelistfile) { Logwrite $extrasitelistfile "found"; $extrasites = get-content $extrasitelistfile foreach ($site in $extrasites) { # Call warmup site with SiteURL and credentials WarmupSite -url $site -cred $cred; } } Logwrite "Script execution completed"
Thanks in advace :)