Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Netverkfræðingar standa oft frammi fyrir því verkefni að afrita/líma ákveðin brot úr skrifblokk yfir á stjórnborðið. Þú þarft venjulega að afrita nokkrar breytur: Notandanafn/Lykilorð og eitthvað fleira. Notkun forskrifta gerir þér kleift að flýta fyrir þessu ferli. EN verkefnin við að skrifa handritið og framkvæma handritið ættu að taka styttri tíma samtals en handvirk stilling, annars eru handritin ónýt.

Til hvers er þessi grein? Þessi grein er úr Fast Start seríunni og miðar að því að spara netverkfræðingum tíma þegar þeir setja upp búnað (eitt verkefni) á mörgum tækjum. Notar SecureCRT hugbúnað og innbyggða virkni handritaframkvæmdar.

efni

Inngangur

SecureCRT forritið er með innbyggt handritsframkvæmdarmáta úr kassanum. Til hvers eru terminal scripts?

  • Sjálfvirk I/O, og lágmark I/O sannprófun.
  • Flýttu framkvæmd venjubundinna verkefna - minnkaðu hlé á milli búnaðarstillinga. (Reyndar minnkun á hléum af völdum tíma til að framkvæma afrita/fortíðaraðgerðir á sama vélbúnaði, með 3 eða fleiri skipanabrotum sem á að nota á vélbúnað.)

Þetta skjal fjallar um verkefnin:

  • Gerð einföld skrifta.
  • Keyrir forskriftir á SecureCRT.
  • Dæmi um notkun á einföldum og háþróuðum forskriftum. (Æfðu þig úr raunveruleikanum.)

Gerð einföld skrifta.

Einfaldustu forskriftirnar nota aðeins tvær skipanir, Senda og WaitForString. Þessi virkni dugar fyrir 90% (eða meira) af verkefnum sem unnin eru.

Forskriftir geta virkað í Python, JS, VBS (Visual Basic), Perl o.s.frv.

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

Venjulega skrá með endingunni "*.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

Venjulega skrá með endingunni "*.vbs"

Búðu til skriftu með skriftufærslu.

Gerir þér kleift að gera sjálfvirkan ferlið við að skrifa handrit. Þú byrjar að skrifa handrit. SecureCRT skráir skipanirnar og síðari vélbúnaðarsvörun og sýnir fullbúið handrit fyrir þig.

A. Byrjaðu að skrifa handrit:
SecureCRT Valmynd => Forskrift => Byrjaðu að taka upp forskrift
b. Framkvæmdu aðgerðir með stjórnborðinu (framkvæmdu stillingarskref í CLI).
V. Ljúktu við að skrifa handritið:
SecureCRT Valmynd => Forskrift => Hætta að taka upp forskrift...
Vistaðu handritaskrána.

Dæmi um framkvæmdar skipanir og vistað skriftu:

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Keyrir forskriftir á SecureCRT.

Eftir að handritið hefur verið búið til/breytt, vaknar rökrétt spurning: Hvernig á að beita handritinu?
Það eru nokkrar leiðir:

  • Keyrir handvirkt frá Script valmyndinni
  • Sjálfvirk ræsing eftir tengingu (innskráningarskrift)
  • Sjálfvirk innskráning án þess að nota skriftu
  • Kveikt handvirkt með hnappi í SecureCRT (enn á eftir að búa til hnappinn og bæta við SecureCRT)

Keyrir handvirkt frá Script valmyndinni

SecureCRT Valmynd => Script => Keyra…
- Síðustu 10 forskriftirnar eru í minnum hafðar og tiltækar til skjótrar ræsingar:
SecureCRT valmynd => Script => 1 "Script skráarheiti"
SecureCRT valmynd => Script => 2 "Script skráarheiti"
SecureCRT valmynd => Script => 3 "Script skráarheiti"
SecureCRT valmynd => Script => 4 "Script skráarheiti"
SecureCRT valmynd => Script => 5 "Script skráarheiti"

Sjálfvirk ræsing eftir tengingu (innskráningarskrift)

Stillingar sjálfvirkrar skráningarforskriftar eru stilltar fyrir vistuðu lotuna: Tenging => Innskráningaraðgerðir => Innskráningarforskrift

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Sjálfvirk innskráning án þess að nota skriftu

Það er hægt að slá inn notandanafn lykilorðsins sjálfkrafa án þess að skrifa skriftu, með því að nota aðeins innbyggða virkni SecureCRT. Í tengistillingunum “Connection” => Innskráningaraðgerðir => Sjálfvirk innskráning - þú þarft að fylla út nokkra búnta - sem þýðir pörin: “Væntanlegur texti” + “Sendir stafir í þennan texta” það geta verið mörg slík pör. (Dæmi: 1. par bíður eftir notandanafni, annað bíður eftir lykilorði, þriðja bíður eftir forréttindastillingu, fjórða par fyrir forréttindastillingar lykilorð.)

Dæmi um sjálfvirka innskráningu á Cisco ASA:

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Kveikt handvirkt með hnappi í SecureCRT (enn á eftir að búa til hnappinn og bæta við SecureCRT)

Í SecureCRT geturðu tengt skriftu við hnapp. Hnappinum er bætt við spjaldið sem er sérstaklega búið til í þessu skyni.

A. Að bæta spjaldi við viðmótið: SecureCRT Menu => View => Button Bar
b. Bættu hnappi við spjaldið og bættu við handriti. – Hægrismelltu á hnappastikuna og veldu „Nýr hnappur…“ í samhengisvalmyndinni.
V. Í "Map Button" valmyndinni, í "Action" reitnum, veldu "Run Script" aðgerðina (aðgerð).
Tilgreindu yfirskrift fyrir hnappinn. Liturinn fyrir hnappatáknið. Ljúktu við stillingarnar með því að smella á Í lagi.

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Ath:

Spjaldið með hnöppum er mjög gagnleg virkni.

1. Það er mögulegt, þegar þú skráir þig á tiltekna lotu, að tilgreina hvaða spjald á að opna þennan flipa sjálfgefið.

2. Það er hægt að stilla fyrirfram skilgreindar aðgerðir fyrir staðlaðar aðgerðir með búnaði: sýna sýna útgáfu, sýna hlaupandi stillingar, vista stillingar.

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir
Engin forskrift er fest við þessa hnappa. Aðeins aðgerðalína:

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir
Stilling - þannig að þegar skipt er yfir í lotu opnast nauðsynleg spjaldið með hnöppum í lotustillingunum:

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir
Það er skynsamlegt fyrir viðskiptavininn að setja upp einstök forskriftir fyrir innskráningu og fara á pallborðið með tíðum skipunum fyrir seljanda.

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir
Þegar þú ýtir á Go Cisco hnappinn skiptir spjaldið yfir í Cisco Button Bar.

Sjálfvirk innslátt í SecureCRT með því að nota forskriftir

Dæmi um notkun á einföldum og háþróuðum forskriftum. (Æfðu þig úr raunveruleikanum.)

Einföld handrit duga fyrir næstum öll tækifæri. En einu sinni þurfti ég að flækja handritið aðeins - til að flýta verkinu. Þessi flækja bað bara um viðbótargögn í glugga frá notandanum.

Að biðja um gögn frá notandanum með því að nota valmynd

Ég var með 2 í gagnabeiðnarhandritinu. Þetta er hýsingarheitið og 4. áttund IP tölunnar. Til að framkvæma þessa aðgerð - ég googlaði hvernig á að gera það og fann það á opinberu vefsíðu SecureCRT (vandyke). - virknin er kölluð hvetja.

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

Þessi hluti handritsins bað um Hostname og tölur frá síðasta áttund. Þar sem það voru 15 tæki. Og gögnin voru kynnt í töflu, síðan afritaði ég gildin úr töflunni og límdi þau inn í gluggana. Ennfremur virkaði handritið sjálfstætt.

FTP afritun yfir á netbúnað.

Þetta handrit ræsti skipanagluggann minn (skel) og afritaði gögn í gegnum FTP. Lokaðu fundinum í lokin. Það er ómögulegt að nota skrifblokk fyrir þetta, vegna þess að afritun tekur mjög langan tíma og gögnin í FTP biðminni verða ekki geymd svo lengi:

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

Sláðu inn notandanafn/lykilorð með skriftu

Hjá einum viðskiptavin var aðgangur að netbúnaði beint lokaður. Hægt var að komast inn í búnaðinn með því að tengja fyrst við Default Gateway og þaðan síðan í búnaðinn sem tengdur er honum. Ssh biðlarinn sem er innbyggður í IOS/vélbúnaðarhugbúnaðinn var notaður til að tengjast. Í samræmi við það var beðið um notandanafn og lykilorð í stjórnborðinu. Með handritinu hér að neðan voru notendanafn og lykilorð slegið inn sjálfkrafa:

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

Athugið: Það voru 2 forskriftir. Önnur fyrir stjórnandareikninginn, hin fyrir eSIGHT reikninginn.

Forskrift með getu til að bæta við gögnum beint við framkvæmd handrits.

Verkefnið var að bæta kyrrstöðu leið á allan netbúnað. En gáttin að internetinu á hverjum búnaði var önnur (og hún var frábrugðin sjálfgefna gáttinni). Eftirfarandi handrit sýndi leiðartöfluna, fór í stillingarham, skrifaði ekki skipunina til enda (IP tölu netgáttarinnar) - ég bætti þessum hluta við. Eftir að ég ýtti á Enter hélt handritið áfram að framkvæma skipunina.

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

Í þessu handriti, í línunni: crt.Screen.Send("ip leið 10.10.10.8 255.255.255.252 ") er IP tölu gáttarinnar ekki bætt við og það er enginn vagnsskilastafur. Handritið bíður eftir næstu línu með stöfunum "(config) #" Þessir stafir birtust eftir að ég setti inn ip töluna og slá inn.

Niðurstaða:

Þegar handrit er skrifað og útfært þarf að fylgja reglunni: Tíminn til að skrifa handrit og framkvæma handrit ætti aldrei að vera lengri en sá tími sem fræðilega er varið í að vinna sömu vinnu handvirkt (copy/paste af skrifblokk, ritun og villuleit leikbók fyrir ansible, skrifa og kemba python handrit). Það er, notkun handritsins ætti að spara tíma, en ekki eyða tíma í einskiptis sjálfvirkni ferla (þ.e. þegar handritið er einstakt og það verða ekki fleiri endurtekningar). En ef handritið er einstakt og sjálfvirkni með handritinu og ritun / kembiforrit tekur styttri tíma en að gera það á nokkurn annan hátt (ansible, skipanagluggi), þá er handritið besta lausnin.
Villuleit í handriti. Handritið stækkar smám saman, kembiforrit á sér stað við innkeyrslu á fyrsta, öðru, þriðja tækinu og á því fjórða verður handritið að öllum líkindum komið í fullan gang.

Að keyra skriftu (með því að slá inn notandanafn+lykilorð) með músinni er venjulega fljótlegra en að afrita notendanafn og lykilorð af skrifblokk. En ekki öruggt frá öryggissjónarmiði.
Annað (raunverulegt) dæmi þegar handrit er notað: Þú hefur ekki beinan aðgang að netbúnaði. En það þarf að stilla allan netbúnað (komdu með hann inn í eftirlitskerfið, stilltu viðbótarnotandanafn/lykilorð/snmpv3notandanafn/lykilorð). Það er aðgangur þegar þú ferð í Core switch, þaðan opnarðu SSH í annan búnað. Af hverju geturðu ekki notað Ansible. - Vegna þess að við rekumst á takmörk á fjölda leyfilegra samtímis lota á netbúnaði (lína vty 0 4, notendaviðmót vty 0 4) (önnur spurning er hvernig á að ræsa mismunandi búnað í Ansible með sama SSH fyrsta hoppi).

Handritið dregur úr tíma meðan á löngum aðgerðum stendur - til dæmis við að afrita skrár í gegnum FTP. Eftir að afritun er lokið byrjar handritið strax að virka. Einstaklingur þarf að sjá fyrir endann á afritun, átta sig svo á endalokum afritunar og slá svo inn viðeigandi skipanir. Handritið gerir það hlutlægt hraðar.

Forskriftir eiga við þar sem ómögulegt er að nota fjöldagagnasendingartæki: Console. Eða þegar sum gagna fyrir búnaðinn eru einstök: hýsingarheiti, ip-tala stjórnenda. Eða þegar forrit er skrifað og villuleit er það erfiðara en að bæta við gögnum sem berast frá búnaðinum á meðan handritið er í gangi. - Dæmi með skriftu til að ávísa leið, þegar hver búnaður hefur sitt eigið IP-tölu netveitunnar. (Samstarfsmenn mínir skrifuðu slík handrit - þegar DMVPN talaði var yfir 3. Það var nauðsynlegt að breyta DMVPN stillingunum).

Tilviksrannsókn: Stilla upphafsstillingar á nýjum rofa með því að nota stjórnborðstengin:

A. Tengdi stjórnborðssnúruna í tækið.
B. Keyra handritið
B. Beðið eftir framkvæmd handritsins
D. Tengdi stjórnborðssnúruna í næsta tæki.
E. Ef rofinn er ekki sá síðasti, farðu í skref B.

Sem afleiðing af vinnu handritsins:

  • upphaflegt lykilorð er stillt á búnaðinum.
  • Notandanafn slegið inn
  • einkvæmt IP-tala tækisins er slegið inn.

PS aðgerðin varð að endurtaka. Vegna þess að sjálfgefið ssh var ekki stillt/óvirkt. (Já, þetta eru mín mistök.)

Notaðar heimildir.

1. Um að búa til handrit
2. Dæmi um handrit

Viðauki 1: Dæmi um forskriftir.


Dæmi um langt handrit, með tveimur fyrirspurnum: Hostname og IP tölu. Það var búið til til að forstilla búnað í gegnum stjórnborðið (9600 baud). Og einnig til að undirbúa tengingu búnaðar við netið.

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

Slík handrit er yfirleitt ekki þörf, en magn búnaðar er 15 stk. Leyfi hraðari uppsetningu. Það var fljótlegra að setja upp búnaðinn með SecureCRT Command glugganum.

Að setja upp reikning fyrir ssh.

Annað dæmi. Stilling er einnig í gegnum stjórnborðið.

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


Um SecureCRT:Greiddur hugbúnaður: frá $99 (lægsta verðið er aðeins fyrir SecureCRT í eitt ár)
Opinber vefsíða
Hugbúnaðarleyfi er keypt einu sinni, með stuðningi (til uppfærslu), síðan er hugbúnaðurinn notaður með þessu leyfi í ótakmarkaðan tíma.

Virkar á Mac OS X og Windows stýrikerfum.

Það er handritastuðningur (þessi grein)
Það er stjórn glugga
Serial/Telnet/SSH1/SSH2/Shell stýrikerfi

Heimild: www.habr.com