VBS Script Manipulation and SecureCRT

Hello Experts,

This quest will need an expert proficient in VBS script and an application called SecureCRT.

Is it possible to have script that activate logging in all the separate tabs and log the out to a particular folder.

For example, in screenshot you can see there are five tabs with five different sessions. You can also see a folder in the 'Connect in Tab' dialogue box called GLBP Lab 58.

I would like help compiling a script that will activate the log session for each of the tabs and select the appropriate folder from where the session originated - in this case GLBP Lab 58

Just so as to start the ball rolling the following is a script that will log a single session, at a specified folder. Hopefully, an expert will be able to use this as baseline.
# $language = "VBScript"
# $interface = "1.0"

' This script sets a specific logfile, enables logging then connects
' to a server. After capturing the output of a command to the logfile
' logging is disabled and it disconnects.

Sub Main

  ' Set the name of the log file name "YYMMDD.log"
  Dim logfile
  logfile = "C:\TEMP\mysession.log"
  crt.Session.LogFileName = logfile

  ' Enable logging
  crt.Session.Log True

  ' Send a unix command. The output of the command will
  ' be captured to the logfile.
  crt.Screen.Send "date" & vbCr

  ' Wait again for my login prompt or 5 seconds
  crt.Screen.WaitForString "linux$", 5

  ' Turn off synchronous mode
  crt.Screen.Synchronous = false

  ' Stop logging and disconnect.
  crt.Session.Log False

End Sub

Open in new window


Who is Participating?
khairilConnect With a Mentor Commented:

You can get information on tab caption/title using tab object:

g_szTabCaption = objCurrentTab.Caption

Open in new window

You can go thru snippet as below to get information of session and caption. This is portion of code is modified from the sampel file in SecureCRT script folder (SendCommandToAllTabs.vbs):

Dim nIndex
Dim g_objTab
Dim g_szSkippedTabs
Dim g_szLogFile
Dim g_szTabCaption

For nIndex = 1 to crt.GetTabCount
    Set objCurrentTab = crt.GetTab(nIndex)
    ' Skip tabs that aren't connected
    if objCurrentTab.Session.Connected = True then
        g_szTabCaption = objCurrentTab.Caption
        g_szLogFile = "C:\TEMP\" & g_szTabCaption & ".log"
        objCurrentTab.Session.LogFileName = g_szLogFile
        if g_szSkippedTabs = "" then
            g_szSkippedTabs = nIndex
            g_szSkippedTabs = g_szSkippedTabs & "," & nIndex
        end if
    end if

Open in new window

Hope this help.

I afraid my answer will not satisfy you. After went thru SecureCRT docs on scripting. I do not think that can be done. If you read all the property and method exposed by CRT object, there is nothing about folder it contains from. Thus the session will not know from what container (folder) it starts.

However, you still have a work around here. You can use the title of the Windows/Tab, what you need to do is to set each connection with additional windows propety, this can be done on connection properties->Appearance->Windows->Title Bar. You can grap this tab title propeties and use as variable for output folder.

 You then need to switch on next tab index to make it active so that the title will change to  new tab index title.

Just my 2 cent.
cpatte7372Author Commented:

Thanks for taking time to research this issue on my behalf.

You're workout seems like my only option. Would you happen to know how I would go about grabbing the title properties and use it as a variable for the output folder?

cpatte7372Author Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.