-
Notifications
You must be signed in to change notification settings - Fork 0
/
function-Test-NetScalerConnection.ps1
61 lines (58 loc) · 1.86 KB
/
function-Test-NetScalerConnection.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<#
.Synopsis
Test Connection for a resource on HTTP/S and SSH
.DESCRIPTION
Test Connection for a resource on HTTP/S and SSH
.EXAMPLE
PS> Test-NetScalerConnection 172.16.0.1
Tests "172.16.0.1" on HTTP (TCP:80) and SSH (TCP:22)
.EXAMPLE
PS> Test-NetScalerConnection -ComputerName 172.16.0.1 -Secure
Tests "172.16.0.1" on HTTPS (TCP:443) and SSH (TCP:22)
#>
function Test-NetScalerConnection
{
[CmdletBinding()]
[OutputType([bool])]
Param
(
# NetScaler Host Name or IP
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[String]$ComputerName,
# Switch to toggle HTTPS
[switch]
$Secure
)
Process {
Write-Verbose "Checking for NetScaler Connectivity on Host: $ComputerName"
Write-Verbose "HTTPS selection: $Secure"
Write-Verbose "Testing Web Connectivity"
switch ($Secure)
{
$true {
$webTest = Test-NetConnection -ComputerName $ComputerName -Port 443 -InformationLevel Quiet
}
$false {
$webTest = Test-NetConnection -ComputerName $ComputerName -Port 80 -InformationLevel Quiet
}
}
if ($webTest) {
Write-Verbose "Web Connectivity verified successfully"
$scpTest = Test-NetConnection -ComputerName $ComputerName -Port 22 -InformationLevel Quiet
if ($scpTest) {
Write-Verbose "SCP Connectivity verified successfully"
return $true
}
else {
Write-Verbose "SCP Connectivity verification failed"
return $false
}
}
else {
Write-Verbose "Web Connectivity verification failed"
return $false
}
}
}