Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

L'ingegneri di a rete spessu affruntà u compitu di copià / incollà certi frammenti da un bloccu note à a cunsola. Di solitu avete da copià parechji paràmetri: Username/Password è qualcosa di più. L'usu di script permette di accelerà stu prucessu. MA i compiti di scrive u script è esecutà u script duveranu piglià menu tempu in totale da a cunfigurazione manuale, altrimente i script sò inutili.

Chì ghjè stu articulu per ? Questu articulu hè di a serie Fast Start è hè destinatu à salvà u tempu di l'ingegneri di a rete durante a stallazione di l'equipaggiu (single task) in parechje dispositi. Utilizà u software SecureCRT è a funziunalità integrata di esecuzione di script.

Cuntenuti

Introduzione

U prugramma SecureCRT hà un mecanismu di esecuzione di script integratu fora di a scatula. Chì sò i script di terminal?

  • I/O automatizatu, è validazione I/O minima.
  • Accelerate l'esecuzione di e funzioni di rutina - riducendu e pause trà e paràmetri di l'equipaggiu. (Riduzzione de facto di pause causate da u tempu per fà azzione copia / passata nantu à u stessu hardware, cù 3 o più frammenti di cumanda da esse applicati à u hardware.)

Stu documentu copre i travaglii:

  • Creazione di script simplici.
  • Esecuzione di script in SecureCRT.
  • Esempii di usu di script simplici è avanzati. (Pratica da a vita vera).

Creazione di script simplici.

I scripts più simplici utilizanu solu dui cumandamenti, Send è WaitForString. Sta funziunalità hè abbastanza per u 90% (o più) di i travaglii realizati.

I script ponu travaglià in Python, JS, VBS (Visual Basic), Perl, etc.

pitone

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

Di solitu un schedariu cù l'estensione "*.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

Di solitu un schedariu cù l'estensione "*.vbs"

Crea un script cù una entrata di script.

Permette di automatizà u prucessu di scrive un script. Avete cuminciatu à scrive un script. SecureCRT registra i cumandamenti è a risposta hardware successiva è mostra u script finitu per voi.

A. Cumincià à scrive u script:
Menu SecureCRT => Script => Start Recording Script
b. Eseguite l'azzioni cù a cunsola (eseguite i passi di cunfigurazione in a CLI).
V. Finite di scrive u script:
Menu SecureCRT => Script => Stop Recording Script...
Salvà u schedariu di script.

Esempiu di cumandamenti eseguiti è script salvati:

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

Esecuzione di script in SecureCRT.

Dopu à creà / edità u script, una quistione logica nasce: Cumu applicà u script?
Ci hè parechji modi:

  • Esecuzione manualmente da u menu Script
  • Start automaticu dopu a cunnessione (script di login)
  • Login automaticu senza aduprà un script
  • Triggering manualmente cù un buttone in SecureCRT (un buttone hà ancu esse creatu è aghjuntu à SecureCRT)

Esecuzione manualmente da u menu Script

Menu SecureCRT => Script => Esegui...
- L'ultimi 10 scripts sò ricurdati è dispunibili per un lanciu rapidu:
Menu SecureCRT => Script => 1 "Nome di u schedariu Script"
Menu SecureCRT => Script => 2 "Nome di u schedariu Script"
Menu SecureCRT => Script => 3 "Nome di u schedariu Script"
Menu SecureCRT => Script => 4 "Nome di u schedariu Script"
Menu SecureCRT => Script => 5 "Nome di u schedariu Script"

Start automaticu dopu a cunnessione (script di login)

I paràmetri di script di logu automaticu sò cunfigurati per a sessione salvata: Connessione => Azioni di login => script di login

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

Login automaticu senza aduprà un script

Hè pussibule inserisce automaticamente u nome d'utilizatore di a password senza scrive un script, utilizendu solu a funziunalità integrata di SecureCRT. In i paràmetri di cunnessione "Connection" => Logon Actions => Automate login - avete bisognu di riempie parechji bundle - chì significanu e coppie: "Testu previstu" + "Send characters to this text" pò esse parechje parechje tali. (Esempiu: 1a coppia in attesa di u nome d'utilizatore, a seconda coppia in attesa di a password, a terza in attesa di u prompt di u modu privilegiatu, a quarta coppia per a password di u modu privilegiatu.)

Esempiu di login automaticu in Cisco ASA:

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

Triggering manualmente cù un buttone in SecureCRT (un buttone hà ancu esse creatu è aghjuntu à SecureCRT)

In SecureCRT, pudete assignà un script à un buttone. U buttone hè aghjuntu à un pannellu creatu apposta per questu scopu.

A. Aghjunghjendu un pannellu à l'interfaccia: SecureCRT Menu => View => Button Bar
b. Aghjunghjite un buttone à u pannellu è aghjunghje un script. - Cliccate cù u dirittu nantu à a barra di u buttone è selezziunate "New button..." da u menù di cuntestu.
V. In a finestra di dialogu "Map Button", in u campu "Action", selezziunate l'azzione "Run Script" (funzione).
Specificate una didascalia per u buttone. U culore per l'icona di u buttone. Finite i paràmetri clicchendu Ok.

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

Nutate bè:

U pannellu cù i buttoni hè una funziunalità assai utile.

1. Hè pussibule, quandu Logon à una sessione specifica, per specificà quale pannellu apre à sta tabulazione per difettu.

2. Hè pussibule di stabilisce azzioni predefinite per l'azzioni standard cù l'equipaggiu: mostra a versione di mostra, mostra running-config, salvà a cunfigurazione.

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts
Nisun script hè attaccatu à sti buttoni. A linea d'azzione solu:

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts
Configurazione - cusì chì quandu si passa à una sessione, u pannellu necessariu cù i buttoni si apre in i paràmetri di a sessione:

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts
Hè sensu per u cliente per stabilisce scripts individuali per u Login è andate à u pannellu cù cumandamenti frequenti per u venditore.

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts
Quandu appughjà u buttone Go Cisco, u pannellu cambia à u Cisco Button Bar.

Automatizazione di l'entrata in SecureCRT Utilizendu Scripts

Esempii di usu di script simplici è avanzati. (Pratica da a vita vera).

I script simplici sò abbastanza per quasi tutte l'occasioni. Ma una volta avia bisognu di cumplicà un pocu u script - per accelerà u travagliu. Sta cumplicazione solu dumandava dati supplementari in una finestra di dialogu da l'utilizatore.

Richiedendu dati da l'utilizatore utilizendu una finestra di dialogu

Aviu avutu 2 in u script di dumanda di dati. Questu hè u Hostname è l'octettu 4 di l'indirizzu IP. Per fà sta azione - aghju googled cumu fà è l'aghju trovu nantu à u situ ufficiale di SecureCRT (vandyke). - a funziunalità hè chjamata 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") 

Questa parte di u script hà dumandatu Hostname è numeri da l'ultimu octet. Dapoi ci era 15 pezzi di equipaggiu. E i dati sò stati presentati in una tavula, dopu aghju copiatu i valori da u tavulu è l'aghju incollatu in i scatuli di dialogu. In più, u script hà travagliatu indipindente.

Copia FTP à l'equipaggiu di rete.

Stu script hà lanciatu a mo finestra di cumanda (shell) è copiò dati via FTP. À a fine, chjude a sessione. Hè impussibile di utilizà un bloccu note per questu, perchè a copia dura assai tempu è i dati in u buffer FTP ùn saranu micca guardati per quellu tempu:

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

Ingressu nome d'utilizatore / password utilizendu un script

À un accessu di u cliente à l'equipaggiu di rete direttamente hè stata chjusa. Hè pussibule entre in l'equipaggiu prima cunnessu à u Gateway Default, è da quì à l'equipaggiu cunnessu à questu. U cliente ssh integratu in u software IOS / hardware hè stata utilizata per cunnette. Per quessa, u nome d'utilizatore è a password sò stati dumandati in a cunsola. Cù u script sottu, u nome d'utilizatore è a password sò stati inseriti automaticamente:

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

Nota: Ci era script 2. Unu per u contu amministratore, u sicondu per u contu eSIGHT.

Scrittura cù a capacità di appiccicà direttamente dati durante l'esecuzione di u script.

U compitu era di aghjunghje una strada statica in tutti l'equipaggiu di rete. Ma a porta di l'Internet nantu à ogni equipamentu era diversa (è sferente da a porta predeterminata). U seguente script mostrava a tabella di routing, intrutu in u modu di cunfigurazione, ùn hà micca scrittu u cumandamentu à a fine (l'indirizzu IP di a porta di l'Internet) - aghju aghjustatu sta parte. Dopu avè pressatu Enter, u script hà cuntinuatu à eseguisce u cumandamentu.

# $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 questu script, in a linea: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252 ") l'indirizzu IP di a porta ùn hè micca aghjuntu è ùn ci hè micca un caratteru di ritornu di carru. U script hè aspittendu a linea dopu cù i caratteri "(config) #" Questi caratteri apparsu dopu avè intrutu in l'indirizzu ip è entre.

Cunclusione:

Quandu scrivite un script è eseguite, a regula deve esse seguita: U tempu per scrive un script è esecutà un script ùn deve mai esse più di u tempu teoricamente spesu à fà u stessu travagliu manualmente (copia / incolla da un bloccu note, scrive è debugging). un playbook per ansible, scrittura è debugging script python). Questu hè, l'usu di u script deve risparmià u tempu, è ùn perde micca u tempu nantu à l'automatizazione unica di prucessi (vale à dì, quandu u script hè unicu è ùn ci sarà più ripetizione). Ma s'è u script hè unicu è l'automatizazione cù u script è a scrittura / debugging u script piglia menu tempu ch'è fà in ogni altru modu (ansible, finestra di cumanda), allora u script hè a megliu suluzione.
Debugging un script. U script cresce gradualmente, u debugging si faci nantu à u run-in nantu à u primu, secondu, terzu dispositivu, è da u quartu u script serà più prubabilmente operativu.

Eseguisce un script (inserendu u nome d'utilizatore + password) cù u mouse hè di solitu più veloce di copià u nome d'utilizatore è a password da un bloccu note. Ma micca sicuru da un puntu di vista di sicurità.
Un altru esempiu (reale) quandu si usa un script: Ùn avete micca accessu direttu à l'equipaggiu di rete. Ma ci hè bisognu di cunfigurà tutti l'equipaggiu di a rete (purtate in u sistema di surviglianza, cunfigurà un Username / password / snmpv3username / password supplementu). Ci hè accessu quandu andate à l'interruttore Core, da ellu avete apertu SSH à altri equipaghji. Perchè ùn pudete micca aduprà Ansible. - Perchè andemu in un limitu in u numeru di sessioni simultanee permesse nantu à l'equipaggiu di rete (linea vty 0 4, user-interface vty 0 4) (una altra quistione hè di cumu principià un equipamentu diversu in Ansible cù u stessu SSH primu hop).

U script reduce u tempu durante operazioni longu - per esempiu, copià i fugliali via FTP. Dopu chì a copia hè finita, u script principia immediatamente à travaglià. Una persona hà bisognu di vede a fine di a copia, poi rializà a fine di a copia, dopu entre in i cumandamenti appropritati. U script faci ugettu più veloce.

I scripts sò applicabili induve hè impussibile d'utilizà strumenti di consegna di dati di massa: Console. O quandu alcune di e dati per l'equipaggiu sò unichi: hostname, indirizzu ip di gestione. O quandu scrive un prugramma è debugging hè più difficiuli di aghjunghje dati ricevuti da l'equipaggiu mentre u script hè in esecuzione. - Un esempiu cù un script per prescrive una strada, quandu ogni equipamentu hà u so propiu indirizzu IP di u fornitore di Internet. (I mo culleghi anu scrittu tali scripts - quandu u DMVPN parlava era più di 3. Era necessariu di cambià i paràmetri DMVPN).

Studiu di casu: Configurazione di i paràmetri iniziali nantu à un novu Switch Utilizendu i porti di a cunsola:

A. Plugged u cable cunsola in u dispusitivu.
B. Eseguite u script
B. Aspittatu per l'esekzione di u script
D. Plugged u cable cunsola in u prossimu dispusitivu.
E. Se u cambiamentu ùn hè micca l'ultimu, andate à u passu B.

In u risultatu di u travagliu di u script:

  • a password iniziale hè stallata nantu à l'equipaggiu.
  • Username intrutu
  • l'indirizzu IP unicu di u dispusitivu hè inseritu.

PS l'operazione duvia esse ripetuta. Perchè ssh predeterminatu ùn hè micca cunfiguratu / disattivatu. (Iè, questu hè u mo sbagliu.)

Fonti aduprate.

1. Circa a creazione di script
2. Esempi di script

Appendice 1: Esempi di scripts.


Un esempiu di un script longu, cù duie dumande: Hostname è indirizzu IP. Hè stata creata per presetting equipaggiu attraversu a cunsola (9600 baud). È ancu per preparà a cunnessione di l'equipaggiu à a reta.

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

Tali scripts sò generalmente micca necessariu, ma a quantità di l'equipaggiu hè 15 pcs. Permette una cunfigurazione più rapida. Hè stata più veloce per stallà l'equipaggiu utilizendu a finestra di SecureCRT Command.

Configurazione di un contu per ssh.

Un altru esempiu. A cunfigurazione hè ancu attraversu a cunsola.

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


À propositu di SecureCRT:Software pagatu: da $ 99 (u prezzu più chjucu hè solu per SecureCRT per un annu)
Situ web ufficiale
Una licenza di software hè acquistata una volta, cù supportu (per l'aghjurnamentu), allora u software hè utilizatu cù sta licenza per un tempu illimitatu.

Funziona nantu à i sistemi operativi Mac OS X è Windows.

Ci hè un supportu di scrittura (stu articulu)
Ci sò Finestra di cumandamentu
Sistema Operativu Serial / Telnet / SSH1 / SSH2 / Shell

Source: www.habr.com