Publish 0.2.0 #12
114
src/Connection/Test-CSConnection.ps1
Normal file
114
src/Connection/Test-CSConnection.ps1
Normal file
@ -0,0 +1,114 @@
|
||||
function Test-CSConnection {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Returns the connection state of a given type to the remote host.
|
||||
|
||||
.DESCRIPTION
|
||||
Use this script to check a connection which was established with the `Connect-To` cmdlet.
|
||||
|
||||
.PARAMETER RemoteHost
|
||||
Define the remote host you would like to check.
|
||||
|
||||
.Parameter Type
|
||||
Define the connection type you would like to check. See the `Connect-To` documentation
|
||||
for valid type values.
|
||||
|
||||
.INPUTS
|
||||
[None]
|
||||
|
||||
.OUTPUTS
|
||||
[Boolean]
|
||||
|
||||
.EXAMPLE
|
||||
.\Test-CMConnection -RemoteHost "r0-i01-vcr01.p0r.kivbf-cloud.net" -Type VMware
|
||||
|
||||
.NOTES
|
||||
File Name : Test-CSConnection.ps1
|
||||
Author : Marco Blessing - marco.blessing@googlemail.com
|
||||
Requires :
|
||||
|
||||
.LINK
|
||||
https://github.com/OCram85/PSCredentialStore
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
[OutputType([boolean])]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$RemoteHost,
|
||||
|
||||
[Parameter(Mandatory = $True)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[ValidateSet("CiscoUcs", "FTP", "NetAppFAS", "VMware")]
|
||||
[string]$Type
|
||||
)
|
||||
|
||||
switch ($Type) {
|
||||
'VMware' {
|
||||
try {
|
||||
$Conn = Get-Variable -Name DefaultVIServer -Scope Global -ErrorAction Stop
|
||||
}
|
||||
catch [System.Management.Automation.ItemNotFoundException] {
|
||||
$MsgParams = @{
|
||||
Message = "There is no open PowerCLI VMware connection bound to 'DefaultVIServer'."
|
||||
}
|
||||
Write-Verbose @MsgParams
|
||||
return $false
|
||||
}
|
||||
if ($Conn.Value.Name -eq $RemoteHost) {
|
||||
if ($Conn.Value.IsConnected) {
|
||||
$MsgParams = @{
|
||||
Message = "'DefaultVIServer' found. Connection to given remote host already established."
|
||||
}
|
||||
Write-Verbose @MsgParams
|
||||
return $True
|
||||
}
|
||||
else {
|
||||
$MsgParams = @{
|
||||
Message = "'DefaultVIServer' found. RemoteHost matches but the connection is closed."
|
||||
}
|
||||
Write-Verbose @MsgParams
|
||||
return $false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"CiscoUcs" {
|
||||
$MsgParams = @{
|
||||
ErrorAction = "Stop"
|
||||
Message = "CiscoUCS connection test is not implemented yet!"
|
||||
}
|
||||
Write-Error @MsgParams
|
||||
return $false
|
||||
}
|
||||
|
||||
"FTP" {
|
||||
$MsgParams = @{
|
||||
ErrorAction = "Stop"
|
||||
Message = "FTP connection test is not implemented yet!"
|
||||
}
|
||||
Write-Error @MsgParams
|
||||
return $false
|
||||
}
|
||||
|
||||
"NetAppFAS" {
|
||||
$MsgParams = @{
|
||||
ErrorAction = "Stop"
|
||||
Message = "NetAppFAS connection test is not implemented yet!"
|
||||
}
|
||||
Write-Error @MsgParams
|
||||
return $false
|
||||
}
|
||||
|
||||
# The Default section will never be shown as long as the powershell framework isn't broken.
|
||||
Default {
|
||||
$MsgParams = @{
|
||||
ErrorAction = "Stop"
|
||||
Message = "Panic: There is an invalid type value! This error should never be thrown."
|
||||
}
|
||||
Write-Error @MsgParams
|
||||
return $false
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user