Test-RemoteConnection.ps1
function Test-RemoteConnection { <# .SYNOPSIS Requests the keepalive.aspx page from the server to test connectivity. .DESCRIPTON The Test-RemoteConnection command submits a web request to the specified host to both warmup and test connectivity. .PARAMETER Timeout The time to way before aborting in seconds. .PARAMETER Quiet The command should return a true or false value indicating connectivity. .EXAMPLE The following example tests connectivity with the session host and returns a true or false value. $session = New-ScriptSession -Username admin -Password b -ConnectionUri http://remotesitecore Test-RemoteConnection -Session $session -Quiet .EXAMPLE The following example tests connectivity with the session host and returns the System.Net.HttpWebResponse object or System.Net.WebException error message. $session = New-ScriptSession -Username admin -Password b -ConnectionUri http://remotesitecore Test-RemoteConnection -Session $session .LINK New-ScriptSession #> [CmdletBinding()] param( [Parameter(ParameterSetName='Session')] [ValidateNotNull()] [pscustomobject]$Session, [Parameter()] [int]$Timeout = 60, [switch]$Quiet ) process { foreach($connection in $Session.Connection) { $uri = "$($connection.BaseUri.AbsoluteUri.TrimEnd('/'))/sitecore/service/keepalive.aspx?ts=$([DateTime]::Now.Ticks)&reason=default" $webRequest = [System.Net.WebRequest]::Create($uri) if($Session.Credential) { $webRequest.Credential = $Session.Credential } if($Session.UseDefaultCredentials) { $webRequest.UseDefaultCredentials = $Session.UseDefaultCredentials } $webRequest.Timeout = 1000 * $Timeout try { $webResponse = [System.Net.HttpWebResponse]($webRequest.GetResponse()) if($Quiet) { $webResponse.StatusCode -eq [System.Net.HttpStatusCode]::OK } else { $webResponse } } catch [System.Net.WebException] { if($Quiet) { $false } else { throw $_ } } } } } |