Outomatisering van invoer in SecureCRT met behulp van skrifte

Netwerkingenieurs het dikwels die taak om sekere fragmente van 'n notaboek na die konsole te kopieer/plak. Jy moet gewoonlik verskeie parameters kopieer: Gebruikersnaam/Wagwoord en iets anders. Die gebruik van skrifte laat jou toe om hierdie proses te bespoedig. MAAR die take om die script te skryf en die script uit te voer behoort in totaal minder tyd te neem as handmatige opstelling, anders is die skrifte nutteloos.

Waarvoor is hierdie artikel? Hierdie artikel is uit die Fast Start-reeks en is daarop gemik om netwerkingenieurs tyd te bespaar wanneer toerusting (enkeltaak) op verskeie toestelle opgestel word. Gebruik SecureCRT sagteware en ingeboude script uitvoering funksionaliteit.

inhoud

Inleiding

Die SecureCRT-program het 'n ingeboude skripuitvoeringsmeganisme uit die boks. Waarvoor is terminale skrifte?

  • Outomatiese I/O, en minimale I/O-validering.
  • Bespoedig die uitvoering van roetine-take - verminder pouses tussen toerustinginstellings. (De facto vermindering van pouses wat deur tyd veroorsaak word om kopieer/verlede aksies op dieselfde hardeware uit te voer, met 3 of meer opdragfragmente wat op hardeware toegepas moet word.)

Hierdie dokument dek die take:

  • Skep van eenvoudige skrifte.
  • Lopende skrifte op SecureCRT.
  • Voorbeelde van die gebruik van eenvoudige en gevorderde skrifte. (Oefen vanuit die werklike lewe.)

Skep van eenvoudige skrifte.

Die eenvoudigste skrifte gebruik slegs twee opdragte, Stuur en WaitForString. Hierdie funksionaliteit is genoeg vir 90% (of meer) van die take wat uitgevoer word.

Skripte kan werk in Python, JS, VBS (Visual Basic), Perl, ens.

Python

# $language = "Python"
# $interface = "1.0"
def main():
  crt.Screen.Synchronous = True
  crt.Screen.Send("r")
  crt.Screen.WaitForString("name")
  crt.Screen.Send("adminr")
  crt.Screen.WaitForString("Password:")
  crt.Screen.Send("Password")
  crt.Screen.Synchronous = False
main()

Gewoonlik 'n lêer met die uitbreiding "*.py"

VBS

# $language = "VBScript"
# $interface = "1.0"
Sub Main
  crt.Screen.Synchronous = True
  crt.Screen.Send vbcr
  crt.Screen.WaitForString "name"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.WaitForString "assword"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.Synchronous = False
End Sub

Gewoonlik 'n lêer met die uitbreiding "*.vbs"

Skep 'n skrif deur 'n skrifinskrywing te gebruik.

Laat jou toe om die proses van die skryf van 'n skrif te outomatiseer. Jy begin 'n draaiboek skryf. SecureCRT teken die opdragte en die daaropvolgende hardeware-reaksie aan en vertoon die voltooide skrif vir jou.

A. Begin skrif skryf:
SecureCRT Menu => Skrip => Begin Skrip opneem
b. Voer aksies uit met die konsole (voer konfigurasiestappe in die CLI uit).
V. Skryf die draaiboek klaar:
SecureCRT Menu => Skrip => Hou op om skrip op te neem ...
Stoor die skriplêer.

Voorbeeld van uitgevoerde opdragte en gestoorde skrip:

Outomatisering van invoer in SecureCRT met behulp van skrifte

Lopende skrifte op SecureCRT.

Nadat die skrif geskep/redigeer is, ontstaan ​​'n natuurlike vraag: Hoe om die skrif toe te pas?
Daar is verskeie maniere:

  • Werk handmatig vanaf die Skrip-kieslys
  • Outomatiese begin na verbinding (aanmeldskrif)
  • Outomatiese aanmelding sonder om 'n skrip te gebruik
  • Sneller handmatig met 'n knoppie in SecureCRT ('n knoppie moet nog geskep en by SecureCRT gevoeg word)

Werk handmatig vanaf die Skrip-kieslys

SecureCRT Menu => Skrip => Hardloop...
- Die laaste 10 skrifte word onthou en beskikbaar vir vinnige bekendstelling:
SecureCRT-kieslys => Skrip => 1 "Skriptlêernaam"
SecureCRT-kieslys => Skrip => 2 "Skriptlêernaam"
SecureCRT-kieslys => Skrip => 3 "Skriptlêernaam"
SecureCRT-kieslys => Skrip => 4 "Skriptlêernaam"
SecureCRT-kieslys => Skrip => 5 "Skriptlêernaam"

Outomatiese begin na verbinding (aanmeldskrif)

Outomatiese aantekenskrifinstellings is opgestel vir die gestoorde sessie: Verbinding => Aantekenaksies => Aantekenskrip

Outomatisering van invoer in SecureCRT met behulp van skrifte

Outomatiese aanmelding sonder om 'n skrip te gebruik

Dit is moontlik om outomaties die gebruikersnaam van die wagwoord in te voer sonder om 'n skrip te skryf, met slegs die ingeboude funksionaliteit van SecureCRT. In die verbindingsinstellings “Connection” => Logon Actions => Outomatiseer aanmeld – jy moet verskeie bondels invul – wat die pare beteken: “Verwagte teks” + “Stuur karakters na hierdie teks” kan daar baie sulke pare wees. (Byvoorbeeld: 1ste paar wag vir gebruikernaam, tweede wag vir wagwoord, derde wag vir bevoorregte-modus-aanvraag, vierde paar vir bevoorregte-modus wagwoord.)

Voorbeeld van outomatiese aanmelding op Cisco ASA:

Outomatisering van invoer in SecureCRT met behulp van skrifte

Sneller handmatig met 'n knoppie in SecureCRT ('n knoppie moet nog geskep en by SecureCRT gevoeg word)

In SecureCRT kan jy 'n skrif aan 'n knoppie toewys. Die knoppie word bygevoeg by 'n paneel wat spesiaal vir hierdie doel geskep is.

A. Voeg 'n paneel by die koppelvlak: SecureCRT Menu => View => Button Bar
b. Voeg 'n knoppie by die paneel en voeg 'n skrif by. - Regskliek op die knoppiebalk en kies "Nuwe knoppie ..." in die kontekskieslys.
V. In die "Kaartknoppie"-dialoogkassie, in die "Aksie"-veld, kies die "Run Script"-aksie (funksie).
Spesifiseer 'n byskrif vir die knoppie. Die kleur vir die knoppie-ikoon. Voltooi die instellings deur op OK te klik.

Outomatisering van invoer in SecureCRT met behulp van skrifte

Let wel:

Die paneel met knoppies is baie nuttige funksionaliteit.

1. Dit is moontlik om, wanneer u by 'n spesifieke sessie aanmeld, te spesifiseer watter paneel by verstek na hierdie oortjie oopgemaak moet word.

2. Dit is moontlik om voorafbepaalde aksies vir standaardaksies met toerusting in te stel: show show version, show running-config, save configuration.

Outomatisering van invoer in SecureCRT met behulp van skrifte
Geen skrif is aan hierdie knoppies geheg nie. Slegs aksielyn:

Outomatisering van invoer in SecureCRT met behulp van skrifte
Instelling - sodat wanneer na 'n sessie oorgeskakel word, die nodige paneel met knoppies in die sessie-instellings oopmaak:

Outomatisering van invoer in SecureCRT met behulp van skrifte
Dit maak sin vir die kliënt om individuele skrifte vir Login op te stel en na die paneel te gaan met gereelde opdragte vir die verkoper.

Outomatisering van invoer in SecureCRT met behulp van skrifte
Wanneer jy die Gaan Cisco-knoppie druk, skakel die paneel oor na die Cisco-knoppiebalk.

Outomatisering van invoer in SecureCRT met behulp van skrifte

Voorbeelde van die gebruik van eenvoudige en gevorderde skrifte. (Oefen vanuit die werklike lewe.)

Eenvoudige skrifte is genoeg vir byna alle geleenthede. Maar een keer moes ek die draaiboek 'n bietjie kompliseer - om die werk te bespoedig. Hierdie komplikasie het bloot addisionele data in 'n dialoogkassie van die gebruiker aangevra.

Versoek data van die gebruiker met behulp van 'n dialoogkassie

Ek het 2 in die dataversoekskrif gehad. Dit is die gasheernaam en die 4de oktet van die IP-adres. Om hierdie aksie uit te voer - ek het gegoogle hoe om dit te doen en dit op die amptelike webwerf van SecureCRT (vandyke) gevind. - die funksionaliteit word prompt genoem.

	crt.Screen.WaitForString("-Vlanif200]")
	hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
	ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 23r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r") 

Hierdie deel van die skrif het gevra vir Gasheernaam en nommers van die laaste oktet. Aangesien daar 15 stukke toerusting was. En die data is in 'n tabel aangebied, toe kopieer ek die waardes uit die tabel en plak dit in die dialoogkassies. Verder het die draaiboek onafhanklik gewerk.

FTP-kopieer na netwerktoerusting.

Hierdie skrip het my opdragvenster (dop) geloods en data via FTP gekopieer. Sluit die sessie aan die einde. Dit is onmoontlik om notaboek hiervoor te gebruik, want kopiëring neem baie lank en die data in die FTP-buffer sal nie so lank gestoor word nie:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("ftp 192.168.1.1r")
	crt.Screen.WaitForString("Name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("binaryr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()

Voer gebruikersnaam/wagwoord in met 'n skrif

By een kliënt is toegang tot netwerktoerusting direk gesluit. Dit was moontlik om die toerusting te betree deur eers aan die Default Gateway te koppel, en daarvandaan dan na die toerusting wat daaraan gekoppel is. Die ssh-kliënt wat in die IOS/hardewaresagteware ingebou is, is gebruik om aan te sluit. Gevolglik is die gebruikersnaam en wagwoord in die konsole aangevra. Met die skrif hieronder is die gebruikersnaam en wagwoord outomaties ingevoer:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("snmpadminr")
	crt.Screen.WaitForString("assword:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Synchronous = False
main()

Let wel: Daar was 2 skrifte. Een vir die administrateurrekening, die tweede vir die eSIGHT-rekening.

Skrip met die vermoë om data direk tydens skripuitvoering by te voeg.

Die taak was om 'n statiese roete op alle netwerktoerusting by te voeg. Maar die toegangspoort na die internet op elke toerusting was anders (en dit het verskil van die verstekpoort). Die volgende skrif het die roeteringtabel vertoon, die konfigurasiemodus betree, nie die opdrag tot die einde geskryf nie (die IP-adres van die poort na die internet) - ek het hierdie deel bygevoeg. Nadat ek Enter gedruk het, het die skrip voortgegaan om die opdrag uit te voer.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("show run | inc ip router")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("conf tr")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("endr")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("copy run star")
	crt.Screen.WaitForString("[startup-config]?")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("exitr")
	crt.Screen.Synchronous = False
main()

In hierdie skrif, in die reël: crt.Screen.Send("ip-roete 10.10.10.8 255.255.255.252 ") word die IP-adres van die poort nie bygevoeg nie en daar is geen karretjie-terugvoerkarakter nie. Die script wag vir die volgende reël met die karakters "(config) #" Hierdie karakters het verskyn nadat ek die ip-adres ingevoer en ingevoer het.

Gevolgtrekking:

Wanneer 'n draaiboek geskryf en uitgevoer word, moet die reël gevolg word: Die tyd vir die skryf van 'n draaiboek en die uitvoer van 'n draaiboek moet nooit meer wees as die tyd wat teoreties spandeer word om dieselfde werk met die hand te doen nie (kopieer / plak vanaf 'n notaboek, skryf en ontfouting 'n speelboek vir ansible, skryf en ontfouting van luislangskrif). Dit wil sê, die gebruik van die skrif moet tyd bespaar, en nie tyd mors op eenmalige outomatisering van prosesse nie (d.w.s. wanneer die skrif uniek is en daar nie meer herhaling sal wees nie). Maar as die script uniek is en outomatisering met die script en die skryf / ontfouting van die script neem minder tyd as om dit op enige ander manier te doen (ansible, command window), dan is die script die beste oplossing.
Ontfouting van 'n skrip. Die skrif groei geleidelik, ontfouting vind plaas op die aanloop op die eerste, tweede, derde toestel, en teen die vierde sal die skrif heel waarskynlik ten volle in werking wees.

Om 'n skrip te laat loop (deur gebruikernaam+wagwoord in te voer) met die muis is gewoonlik vinniger as om Gebruikersnaam en Wagwoord vanaf 'n notaboek te kopieer. Maar nie veilig uit 'n sekuriteitsoogpunt nie.
Nog 'n (regte) voorbeeld wanneer 'n skrif gebruik word: Jy het nie direkte toegang tot netwerktoerusting nie. Maar daar is 'n behoefte om alle netwerktoerusting te konfigureer (bring dit in die moniteringstelsel, stel 'n bykomende gebruikersnaam/wagwoord/snmpv3gebruikersnaam/wagwoord in). Daar is toegang wanneer jy na die Core-skakelaar gaan, daaruit maak jy SSH oop vir ander toerusting. Hoekom kan jy nie Ansible gebruik nie. - Omdat ons 'n beperking op die aantal toegelate gelyktydige sessies op netwerktoerusting teëkom (lyn vty 0 4, gebruikerskoppelvlak vty 0 4) ('n ander vraag is hoe om verskillende toerusting in Ansible te begin met dieselfde SSH eerste hop).

Die skrip verminder tyd tydens lang bedrywighede - byvoorbeeld die kopiëring van lêers via FTP. Nadat kopiëring voltooi is, begin die skrif dadelik werk. 'n Persoon sal die einde van kopiëring moet sien, dan die einde van kopiëring moet besef, en dan die toepaslike opdragte moet invoer. Die draaiboek doen dit objektief vinniger.

Skripte is van toepassing waar dit onmoontlik is om nutsmiddels vir massadata-aflewering te gebruik: konsole. Of wanneer sommige van die data vir die toerusting uniek is: gasheernaam, bestuurs-IP-adres. Of wanneer jy 'n program skryf en ontfouting is dit moeiliker as om data by te voeg wat van die toerusting ontvang is terwyl die skrif loop. - 'n Voorbeeld met 'n skrif om 'n roete voor te skryf, wanneer elke toerusting sy eie IP-adres van die internetverskaffer het. (My kollegas het sulke skrifte geskryf - toe die DMVPN gepraat het was meer as 3. Dit was nodig om die DMVPN instellings te verander).

Gevallestudie: Konfigurasie van aanvanklike instellings op 'n nuwe skakelaar deur die konsolepoorte te gebruik:

A. Het die konsolekabel by die toestel ingeprop.
B. Begin die skrip
B. Gewag vir die uitvoering van die draaiboek
D. Het die konsolekabel by die volgende toestel ingeprop.
E. As die skakelaar nie die laaste een is nie, gaan na stap B.

As gevolg van die draaiboek se werk:

  • die aanvanklike wagwoord word op die toerusting gestel.
  • Gebruikersnaam ingevoer
  • die unieke IP-adres van die toestel word ingevoer.

NS die operasie moes herhaal word. Omdat standaard ssh nie gekonfigureer/gedeaktiveer is nie. (Ja, dit is my fout.)

Gebruikte bronne.

1. Oor die skep van skrifte
2. Skrifvoorbeelde

Bylaag 1: Voorbeeld skrifte.


'n Voorbeeld van 'n lang skrif, met twee navrae: Gasheernaam en IP-adres. Dit is geskep om toerusting vooraf in te stel deur die konsole (9600 baud). En ook om die verbinding van toerusting aan die netwerk voor te berei.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Send("sysr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip addressr")
	crt.Screen.Send("shutdownr")
	crt.Screen.Send("vlan 100r")
	crt.Screen.Send(" description description1r")
	crt.Screen.Send(" name description1r")
	crt.Screen.Send("vlan 110r")
	crt.Screen.Send(" description description2r")
	crt.Screen.Send(" name description2r")
	crt.Screen.Send("vlan 120r")
	crt.Screen.Send(" description description3r")
	crt.Screen.Send(" name description3r")
	crt.Screen.Send("vlan 130r")
	crt.Screen.Send(" description description4r")
	crt.Screen.Send(" name description4r")
	crt.Screen.Send("vlan 140r")
	crt.Screen.Send(" description description5r")
	crt.Screen.Send(" name description5r")
	crt.Screen.Send("vlan 150r")
	crt.Screen.Send(" description description6r")
	crt.Screen.Send(" name description6r")
	crt.Screen.Send("vlan 160r")
	crt.Screen.Send(" description description7r")
	crt.Screen.Send(" name description7r")
	crt.Screen.Send("vlan 170r")
	crt.Screen.Send(" description description8r")
	crt.Screen.Send(" name description8r")               
	crt.Screen.Send("vlan 180r")
	crt.Screen.Send(" description description9r")
	crt.Screen.Send(" name description9r")
	crt.Screen.Send("vlan 200r")
	crt.Screen.Send(" description description10r")
	crt.Screen.Send(" name description10r")
	crt.Screen.Send("vlan 300r")
	crt.Screen.Send(" description description11r")
	crt.Screen.Send(" name description11r")
	crt.Screen.Send("quitr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configurationr")
	crt.Screen.Send("region-name descr")
	crt.Screen.Send("active region-configurationr")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("stp instance 0 priority 57344r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Usersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybridr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type accessr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplinkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254r")
	crt.Screen.Send("interface Vlanif 200r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
        hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
        ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 24r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

Sulke skrifte is gewoonlik nie nodig nie, maar die hoeveelheid toerusting is 15 stuks. Vinniger opstelling toegelaat. Dit was vinniger om die toerusting op te stel deur die SecureCRT Command-venster te gebruik.

Die opstel van 'n rekening vir ssh.

Nog 'n voorbeeld. Konfigurasie is ook via die konsole.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString(">")
	crt.Screen.Send("sysr")
	crt.Screen.Send("stelnet server enabler")
	crt.Screen.Send("aaar")
	crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
	crt.Screen.Send("quitr")
	crt.Screen.Send("user-interface vty 0 4r")
	crt.Screen.Send("authentication-mode aaar")
	crt.Screen.Send("quitr")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()


Oor SecureCRT:Betaalde sagteware: vanaf $99 (die kleinste prys is slegs vir SecureCRT vir een jaar)
Amptelike webwerf
'n Sagtewarelisensie word een keer gekoop, met ondersteuning (vir opdatering), dan word die sagteware vir 'n onbeperkte tyd saam met hierdie lisensie gebruik.

Werk op Mac OS X en Windows-bedryfstelsels.

Daar is skrifondersteuning (hierdie artikel)
Daar is opdrag venster
Serial/Telnet/SSH1/SSH2/Shell-bedryfstelsel

Bron: will.com