Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Ang mga inhinyero ng network ay kadalasang nahaharap sa gawain ng pagkopya/pag-paste ng ilang partikular na fragment mula sa isang notepad patungo sa console. Karaniwang kailangan mong kopyahin ang ilang mga parameter: Username/Password at iba pa. Ang paggamit ng mga script ay nagpapahintulot sa iyo na pabilisin ang prosesong ito. PERO ang mga gawain ng pagsulat ng script at pagpapatupad ng script ay dapat tumagal ng mas kaunting oras sa kabuuan kaysa sa manu-manong pagsasaayos, kung hindi, ang mga script ay walang silbi.

Para saan ang artikulong ito? Ang artikulong ito ay mula sa serye ng Mabilis na Pagsisimula at naglalayong makatipid ng oras ng mga network engineer kapag nagse-set up ng kagamitan (isang gawain) sa maraming device. Gumagamit ng SecureCRT software at built-in na script execution functionality.

nilalaman

Pagpapakilala

Ang programang SecureCRT ay may built-in na mekanismo ng pagpapatupad ng script sa labas ng kahon. Para saan ang mga terminal script?

  • Automated I/O, at minimal I/O validation.
  • Pabilisin ang pagpapatupad ng mga nakagawiang gawain - pagbabawas ng mga pag-pause sa pagitan ng mga setting ng kagamitan. (De facto na pagbawas sa mga pag-pause na dulot ng oras upang magsagawa ng mga kopya/nakaraang pagkilos sa parehong hardware, na may 3 o higit pang command fragment na ilalapat sa hardware.)

Sinasaklaw ng dokumentong ito ang mga gawain:

  • Paglikha ng mga simpleng script.
  • Pagpapatakbo ng mga script sa SecureCRT.
  • Mga halimbawa ng paggamit ng simple at advanced na mga script. (Pagsasanay mula sa totoong buhay.)

Paglikha ng mga simpleng script.

Ang pinakasimpleng script ay gumagamit lamang ng dalawang command, Send at WaitForString. Ang functionality na ito ay sapat para sa 90% (o higit pa) ng mga gawaing isinagawa.

Maaaring gumana ang mga script sa Python, JS, VBS (Visual Basic), Perl, atbp.

Sawa

# $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()

Karaniwan ang isang file na may extension na "*.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

Karaniwan ang isang file na may extension na "*.vbs"

Gumawa ng script gamit ang script entry.

Binibigyang-daan kang i-automate ang proseso ng pagsulat ng script. Magsisimula kang magsulat ng isang script. Itinatala ng SecureCRT ang mga command at ang kasunod na tugon ng hardware at ipinapakita ang natapos na script para sa iyo.

A. Simulan ang pagsulat ng script:
SecureCRT Menu => Script => Simulan ang Recording Script
b. Magsagawa ng mga aksyon gamit ang console (magsagawa ng mga hakbang sa pagsasaayos sa CLI).
V. Tapusin ang pagsulat ng script:
SecureCRT Menu => Script => Ihinto ang Pagre-record ng Script...
I-save ang script file.

Halimbawa ng mga nai-execute na command at naka-save na script:

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Pagpapatakbo ng mga script sa SecureCRT.

Pagkatapos likhain/i-edit ang script, isang natural na tanong ang lumitaw: Paano ilapat ang script?
Mayroong maraming mga paraan:

  • Manu-manong tumatakbo mula sa menu ng Script
  • Awtomatikong pagsisimula pagkatapos ng koneksyon (logon script)
  • Awtomatikong pag-logon nang hindi gumagamit ng script
  • Manu-manong pag-trigger gamit ang isang button sa SecureCRT (isang button ay hindi pa nagagawa at naidagdag sa SecureCRT)

Manu-manong tumatakbo mula sa menu ng Script

SecureCRT Menu => Script => Run...
- Ang huling 10 script ay naaalala at magagamit para sa mabilis na paglulunsad:
SecureCRT menu => Script => 1 "Script file name"
SecureCRT menu => Script => 2 "Script file name"
SecureCRT menu => Script => 3 "Script file name"
SecureCRT menu => Script => 4 "Script file name"
SecureCRT menu => Script => 5 "Script file name"

Awtomatikong pagsisimula pagkatapos ng koneksyon (logon script)

Ang mga setting ng awtomatikong pag-log script ay na-configure para sa naka-save na session: Koneksyon => Logon Actions => Logon script

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Awtomatikong pag-logon nang hindi gumagamit ng script

Posibleng awtomatikong ipasok ang username ng password nang hindi sumusulat ng script, gamit lamang ang built-in na functionality ng SecureCRT. Sa mga setting ng koneksyon "Koneksyon" => Mga Aksyon sa Logon => I-automate ang pag-logon - kailangan mong punan ang ilang mga bundle - na nangangahulugang ang mga pares: "Inaasahang teksto" + "Ipinadala ang mga character sa tekstong ito" maaaring mayroong maraming mga pares. (Halimbawa: 1st pair waiting for username, second waiting for password, third waiting for privileged mode prompt, fourth pair for privileged mode password.)

Halimbawa ng awtomatikong pag-logon sa Cisco ASA:

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Manu-manong pag-trigger gamit ang isang button sa SecureCRT (isang button ay hindi pa nagagawa at naidagdag sa SecureCRT)

Sa SecureCRT, maaari kang magtalaga ng script sa isang button. Ang pindutan ay idinagdag sa isang panel na espesyal na nilikha para sa layuning ito.

A. Pagdaragdag ng panel sa interface: SecureCRT Menu => View => Button Bar
b. Magdagdag ng button sa panel at magdagdag ng script. – Mag-right-click sa Button Bar at piliin ang β€œBagong button…” mula sa menu ng konteksto.
V. Sa dialog box na "Map Button", sa field na "Action", piliin ang "Run Script" action (function).
Tumukoy ng caption para sa button. Ang kulay para sa icon ng button. Tapusin ang mga setting sa pamamagitan ng pag-click sa Ok.

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Tandaan:

Ang panel na may mga pindutan ay napaka-kapaki-pakinabang na pag-andar.

1. Posible, kapag Logon sa isang partikular na session, na tukuyin kung aling panel ang bubuksan sa tab na ito bilang default.

2. Posibleng magtakda ng mga paunang natukoy na aksyon para sa mga karaniwang pagkilos na may kagamitan: ipakita ang bersyon ng palabas, ipakita ang running-config, i-save ang configuration.

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script
Walang script na naka-attach sa mga button na ito. Linya ng pagkilos lang:

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script
Setting - upang kapag lumipat sa isang session, ang kinakailangang panel na may mga pindutan ay bubukas sa mga setting ng session:

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script
Makatuwiran para sa customer na mag-set up ng mga indibidwal na script para sa Pag-login at pumunta sa panel na may mga madalas na command para sa vendor.

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script
Kapag pinindot mo ang Go Cisco button, lilipat ang panel sa Cisco Button Bar.

Pag-automate ng Entry sa SecureCRT Gamit ang Mga Script

Mga halimbawa ng paggamit ng simple at advanced na mga script. (Pagsasanay mula sa totoong buhay.)

Ang mga simpleng script ay sapat na para sa halos lahat ng okasyon. Ngunit sa sandaling kailangan kong gawing kumplikado ang script - upang mapabilis ang gawain. Ang komplikasyong ito ay humiling lamang ng karagdagang data sa isang dialog box mula sa user.

Paghiling ng data mula sa user gamit ang isang dialog box

Mayroon akong 2 sa script ng kahilingan sa data. Ito ang Hostname at ang ika-4 na octet ng IP address. Upang maisagawa ang pagkilos na ito - Nag-google ako kung paano ito gagawin at nakita ko ito sa opisyal na website ng SecureCRT (vandyke). - ang pag-andar ay tinatawag na prompt.

	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") 

Ang bahaging ito ng script ay humingi ng Hostname at mga numero mula sa huling octet. Dahil mayroong 15 piraso ng kagamitan. At ang data ay ipinakita sa isang talahanayan, pagkatapos ay kinopya ko ang mga halaga mula sa talahanayan at i-paste ito sa mga dialog box. Karagdagan ang script ay nagtrabaho nang nakapag-iisa.

Pagkopya ng FTP sa kagamitan sa network.

Inilunsad ng script na ito ang aking command window (shell) at kinopya ang data sa pamamagitan ng FTP. Sa dulo, isara ang session. Imposibleng gumamit ng notepad para dito, dahil ang pagkopya ay tumatagal ng napakatagal at ang data sa FTP buffer ay hindi maiimbak nang ganoon katagal:

# $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()

Pagpasok ng username/password gamit ang isang script

Sa isang customer, direktang isinara ang access sa network equipment. Posibleng ipasok ang kagamitan sa pamamagitan ng unang pagkonekta sa Default Gateway, at mula dito sa kagamitan na konektado dito. Ang ssh client na binuo sa IOS/hardware software ay ginamit upang kumonekta. Alinsunod dito, hiniling ang username at password sa console. Gamit ang script sa ibaba, ang username at password ay awtomatikong ipinasok:

# $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()

Tandaan: Mayroong 2 script. Isa para sa administrator account, ang pangalawa para sa eSIGHT account.

Script na may kakayahang direktang magdagdag ng data sa panahon ng pagpapatupad ng script.

Ang gawain ay magdagdag ng static na ruta sa lahat ng kagamitan sa network. Ngunit ang gateway sa Internet sa bawat kagamitan ay iba (at ito ay naiiba sa default na gateway). Ang sumusunod na script ay nagpakita ng routing table, pumasok sa configuration mode, hindi isinulat ang command hanggang sa dulo (ang IP address ng gateway sa Internet) - Idinagdag ko ang bahaging ito. Pagkatapos kong pindutin ang Enter, ang script ay nagpatuloy sa pagpapatupad ng utos.

# $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()

Sa script na ito, sa linyang: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") ang IP address ng gateway ay hindi idinagdag at walang carriage return character. Ang script ay naghihintay para sa susunod na linya na may mga character na "(config) #" Ang mga character na ito ay lumitaw pagkatapos kong ipasok ang ip address at ipasok.

Konklusyon:

Kapag nagsusulat ng isang script at nagpapatupad nito, dapat sundin ang panuntunan: Ang oras para sa pagsulat ng isang script at pagpapatupad ng isang script ay hindi dapat higit pa kaysa sa teoretikal na oras na ginugol sa paggawa ng parehong gawain nang manu-mano (kopya / i-paste mula sa isang notepad, pagsulat at pag-debug isang playbook para sa ansible, pagsulat at pag-debug ng script ng python). Iyon ay, ang paggamit ng script ay dapat makatipid ng oras, at hindi mag-aksaya ng oras sa isang beses na automation ng mga proseso (ibig sabihin, kapag ang script ay natatangi at wala nang pag-uulit). Ngunit kung ang script ay natatangi at automation sa script at pagsulat / pag-debug ng script ay tumatagal ng mas kaunting oras kaysa sa paggawa nito sa anumang iba pang paraan (ansible, command window), kung gayon ang script ay ang pinakamahusay na solusyon.
Pag-debug ng script. Ang script ay unti-unting lumalaki, ang pag-debug ay nagaganap sa run-in sa una, pangalawa, pangatlong device, at sa ikaapat na ang script ay malamang na ganap na gumagana.

Ang pagpapatakbo ng script (sa pamamagitan ng pagpasok ng username+password) gamit ang mouse ay karaniwang mas mabilis kaysa sa pagkopya ng Username at Password mula sa notepad. Ngunit hindi ligtas mula sa isang punto ng seguridad.
Isa pang (totoong) halimbawa kapag gumagamit ng script: Wala kang direktang access sa network equipment. Ngunit may pangangailangan na i-configure ang lahat ng kagamitan sa network (dalhin ito sa sistema ng pagsubaybay, i-configure ang isang karagdagang Username/password/snmpv3username/password). May access kapag pumunta ka sa Core switch, mula dito magbubukas ka ng SSH sa iba pang kagamitan. Bakit hindi mo magagamit ang Ansible. - Dahil mayroon kaming limitasyon sa bilang ng mga pinapayagang sabay-sabay na session sa network equipment (line vty 0 4, user-interface vty 0 4) (isa pang tanong ay kung paano magsisimula ng iba't ibang kagamitan sa Ansible na may parehong SSH first hop).

Binabawasan ng script ang oras sa mahabang operasyon - halimbawa, pagkopya ng mga file sa pamamagitan ng FTP. Matapos makumpleto ang pagkopya, agad na magsisimulang gumana ang script. Kakailanganin ng isang tao na makita ang katapusan ng pagkopya, pagkatapos ay mapagtanto ang katapusan ng pagkopya, pagkatapos ay ipasok ang naaangkop na mga utos. Ang script ay talagang mas mabilis.

Naaangkop ang mga script kung saan imposibleng gumamit ng mga tool sa paghahatid ng mass data: Console. O kapag natatangi ang ilan sa data para sa kagamitan: hostname, management ip address. O kapag nagsusulat ng isang programa at nagde-debug ito ay mas mahirap kaysa sa pagdaragdag ng data na natanggap mula sa kagamitan habang tumatakbo ang script. - Isang halimbawa na may script para sa pagrereseta ng ruta, kapag ang bawat kagamitan ay may sariling IP address ng Internet provider. (Ang aking mga kasamahan ay sumulat ng mga naturang script - kapag ang DMVPN ay nagsalita ay higit sa 3. Ito ay kinakailangan upang baguhin ang mga setting ng DMVPN).

Pag-aaral ng Kaso: Pag-configure ng Mga Paunang Setting sa Bagong Switch Gamit ang Mga Console Port:

A. Naka-plug ang console cable sa device.
B. Patakbuhin ang script
B. Hinintay ang execution ng script
D. Naka-plug ang console cable sa susunod na device.
E. Kung ang switch ay hindi ang huli, pumunta sa hakbang B.

Bilang resulta ng gawain ng script:

  • ang paunang password ay nakatakda sa kagamitan.
  • Inilagay ang username
  • ang natatanging IP address ng device ay ipinasok.

PS kailangang ulitin ang operasyon. Dahil ang Default na ssh ay hindi na-configure/na-disable. (Oo, ito ang aking pagkakamali.)

Mga ginamit na mapagkukunan.

1. Tungkol sa paggawa ng mga script
2. Mga halimbawa ng script

Appendix 1: Mga sample na script.


Isang halimbawa ng mahabang script, na may dalawang query: Hostname at IP address. Ito ay nilikha para sa pag-preset ng kagamitan sa pamamagitan ng console (9600 baud). At din upang ihanda ang koneksyon ng kagamitan sa network.

# $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()

Ang ganitong mga script ay karaniwang hindi kinakailangan, ngunit ang halaga ng kagamitan ay 15 mga PC. Pinapayagan ang mas mabilis na pag-setup. Mas mabilis na i-set up ang kagamitan gamit ang SecureCRT Command window.

Pag-set up ng isang account para sa ssh.

Isa pang halimbawa. Ang configuration ay sa pamamagitan din ng console.

# $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()


Tungkol sa SecureCRT:Bayad na software: mula $99 (ang pinakamaliit na presyo ay para lamang sa SecureCRT sa loob ng isang taon)
Opisyal na website
Ang isang lisensya ng software ay binili nang isang beses, na may suporta (para sa pag-update), pagkatapos ay ginagamit ang software kasama ng lisensyang ito para sa isang walang limitasyong oras.

Gumagana sa mga operating system ng Mac OS X at Windows.

Mayroong suporta sa script (artikulong ito)
Mayroon command window
Serial/Telnet/SSH1/SSH2/Shell Operating System

Pinagmulan: www.habr.com