PowerShell
PowerShell
Get the Type of an Active SSH Channel
See more SSH Examples
Demonstrates the Chilkat Ssh.GetChannelType method, which returns the type of the channel at a zero-based enumeration index. The only argument is the index — an enumeration position, not a channel number. Values include session, x11, forwarded-tcpip, and direct-tcpip.
Background: Paired with
GetChannelNumber, this turns the channel collection into a readable inventory of what a connection is currently doing — which channels are running commands (session) versus tunneling TCP traffic (direct-tcpip). That is valuable for diagnostics and for application code that manages several channel kinds at once. An out-of-range index causes the string-returning method to report failure.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# Demonstrates the Ssh.GetChannelType method, which returns the type of the channel at a
# zero-based enumeration index. The only argument is the index, which is an enumeration
# position and not a channel number. Values include "session" and "direct-tcpip".
$ssh = New-Object Chilkat.Ssh
$sshPort = 22
$success = $ssh.Connect("ssh.example.com",$sshPort)
if ($success -eq $false) {
$($ssh.LastErrorText)
exit
}
# Normally you would not hard-code the password in source. You should instead obtain it
# from an interactive prompt, environment variable, or a secrets vault.
$password = "mySshPassword"
$success = $ssh.AuthenticatePw("mySshLogin",$password)
if ($success -eq $false) {
$($ssh.LastErrorText)
exit
}
$channelNum = $ssh.OpenSessionChannel()
if ($channelNum -lt 0) {
$($ssh.LastErrorText)
exit
}
# Enumerate the active channels and report each one's number and type.
$n = $ssh.NumOpenChannels
for ($i = 0; $i -le $n - 1; $i++) {
$chNum = $ssh.GetChannelNumber($i)
$chType = $ssh.GetChannelType($i)
if ($ssh.LastMethodSuccess -eq $false) {
$($ssh.LastErrorText)
exit
}
$("Channel " + $chNum + " is of type " + $chType)
}
$ssh.Disconnect()