Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Jurutera rangkaian sering menghadapi tugas menyalin/menampal serpihan tertentu daripada pad nota ke konsol. Anda biasanya perlu menyalin beberapa parameter: Nama Pengguna/Kata Laluan dan sesuatu yang lain. Penggunaan skrip membolehkan anda mempercepatkan proses ini. TETAPI tugas menulis skrip dan melaksanakan skrip sepatutnya mengambil masa yang lebih sedikit daripada konfigurasi manual, jika tidak, skrip tidak berguna.

Untuk apa artikel ini? Artikel ini adalah daripada siri Fast Start dan bertujuan untuk menjimatkan masa jurutera rangkaian apabila menyediakan peralatan (tugas tunggal) pada berbilang peranti. Menggunakan perisian SecureCRT dan fungsi pelaksanaan skrip terbina dalam.

Содержание

Pengenalan

Program SecureCRT mempunyai mekanisme pelaksanaan skrip terbina dalam di luar kotak. Untuk apa skrip terminal?

  • I/O automatik, dan pengesahan I/O minimum.
  • Mempercepatkan pelaksanaan tugas rutin - mengurangkan jeda antara tetapan peralatan. (Pengurangan de facto jeda yang disebabkan oleh masa untuk melakukan salinan/tindakan lepas pada perkakasan yang sama, dengan 3 atau lebih serpihan perintah untuk digunakan pada perkakasan.)

Dokumen ini merangkumi tugas:

  • Penciptaan skrip mudah.
  • Menjalankan skrip pada SecureCRT.
  • Contoh penggunaan skrip mudah dan lanjutan. (Amalkan dari kehidupan sebenar.)

Penciptaan skrip mudah.

Skrip paling mudah hanya menggunakan dua arahan, Hantar dan WaitForString. Fungsi ini cukup untuk 90% (atau lebih) daripada tugasan yang dilakukan.

Skrip boleh berfungsi dalam Python, JS, VBS (Visual Basic), Perl, dll.

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

Biasanya fail dengan sambungan "*.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

Biasanya fail dengan sambungan "*.vbs"

Buat skrip menggunakan entri skrip.

Membolehkan anda mengautomasikan proses menulis skrip. Anda mula menulis skrip. SecureCRT merekodkan arahan dan tindak balas perkakasan seterusnya dan memaparkan skrip siap untuk anda.

A. Mula menulis skrip:
Menu SecureCRT => Skrip => Mula Merakam Skrip
b. Lakukan tindakan dengan konsol (lakukan langkah konfigurasi dalam CLI).
V. Selesai menulis skrip:
Menu SecureCRT => Skrip => Hentikan Skrip Rakaman…
Simpan fail skrip.

Contoh arahan yang dilaksanakan dan skrip yang disimpan:

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Menjalankan skrip pada SecureCRT.

Selepas mencipta/menyunting skrip, persoalan semula jadi timbul: Bagaimana untuk menggunakan skrip?
Terdapat beberapa cara:

  • Berjalan secara manual dari menu Skrip
  • Permulaan automatik selepas sambungan (skrip log masuk)
  • Log masuk automatik tanpa menggunakan skrip
  • Mencetuskan secara manual dengan butang dalam SecureCRT (butang masih belum dibuat dan ditambahkan pada SecureCRT)

Berjalan secara manual dari menu Skrip

Menu SecureCRT => Skrip => Jalankan…
- 10 skrip terakhir diingati dan tersedia untuk pelancaran pantas:
Menu SecureCRT => Skrip => 1 "Nama fail skrip"
Menu SecureCRT => Skrip => 2 "Nama fail skrip"
Menu SecureCRT => Skrip => 3 "Nama fail skrip"
Menu SecureCRT => Skrip => 4 "Nama fail skrip"
Menu SecureCRT => Skrip => 5 "Nama fail skrip"

Permulaan automatik selepas sambungan (skrip log masuk)

Tetapan skrip pengelogan automatik dikonfigurasikan untuk sesi yang disimpan: Sambungan => Tindakan Logon => Skrip Logon

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Log masuk automatik tanpa menggunakan skrip

Anda boleh memasukkan nama pengguna kata laluan secara automatik tanpa menulis skrip, hanya menggunakan fungsi terbina dalam SecureCRT. Dalam tetapan sambungan "Sambungan" => Tindakan Logon => Automatikkan log masuk - anda perlu mengisi beberapa berkas - yang bermaksud pasangan: "Teks dijangka" + "Hantar aksara ke teks ini" mungkin terdapat banyak pasangan sedemikian. (Contoh: Pasangan pertama menunggu nama pengguna, kedua menunggu kata laluan, ketiga menunggu gesaan mod istimewa, pasangan keempat untuk kata laluan mod istimewa.)

Contoh log masuk automatik pada Cisco ASA:

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Mencetuskan secara manual dengan butang dalam SecureCRT (butang masih belum dibuat dan ditambahkan pada SecureCRT)

Dalam SecureCRT, anda boleh menetapkan skrip pada butang. Butang ditambah pada panel yang dicipta khas untuk tujuan ini.

A. Menambah panel pada antara muka: Menu SecureCRT => Lihat => Bar Butang
b. Tambahkan butang pada panel dan tambahkan skrip. – Klik kanan pada Bar Butang dan pilih “Butang baharu…” daripada menu konteks.
V. Dalam kotak dialog "Butang Peta", dalam medan "Tindakan", pilih tindakan (fungsi) "Jalankan Skrip".
Tentukan kapsyen untuk butang. Warna untuk ikon butang. Selesaikan tetapan dengan mengklik Ok.

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Nota:

Panel dengan butang adalah fungsi yang sangat berguna.

1. Adalah mungkin, apabila Log masuk ke sesi tertentu, untuk menentukan panel yang hendak dibuka pada tab ini secara lalai.

2. Adalah mungkin untuk menetapkan tindakan yang dipratentukan untuk tindakan standard dengan peralatan: tunjukkan versi rancangan, tunjukkan konfigurasi berjalan, simpan konfigurasi.

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip
Tiada skrip dilampirkan pada butang ini. Garis tindakan sahaja:

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip
Tetapan - supaya apabila beralih ke sesi, panel yang diperlukan dengan butang dibuka dalam tetapan sesi:

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip
Adalah wajar untuk pelanggan menyediakan skrip individu untuk Log Masuk dan pergi ke panel dengan arahan yang kerap untuk vendor.

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip
Apabila anda menekan butang Pergi Cisco, panel bertukar ke Bar Butang Cisco.

Mengautomasikan Kemasukan dalam SecureCRT Menggunakan Skrip

Contoh penggunaan skrip mudah dan lanjutan. (Amalkan dari kehidupan sebenar.)

Skrip mudah sudah cukup untuk hampir semua keadaan. Tetapi apabila saya perlu merumitkan sedikit skrip - untuk mempercepatkan kerja. Komplikasi ini hanya meminta data tambahan dalam kotak dialog daripada pengguna.

Meminta data daripada pengguna menggunakan kotak dialog

Saya mempunyai 2 dalam skrip permintaan data. Ini ialah Nama Hos dan oktet ke-4 alamat IP. Untuk melakukan tindakan ini - saya google cara untuk melakukannya dan menemuinya di laman web rasmi SecureCRT (vandyke). - fungsi dipanggil segera.

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

Bahagian skrip ini meminta Nama Hos dan nombor daripada oktet terakhir. Oleh kerana terdapat 15 peralatan. Dan data itu dibentangkan dalam jadual, kemudian saya menyalin nilai-nilai dari jadual dan menampalnya ke dalam kotak dialog. Selanjutnya skrip berfungsi secara bebas.

Menyalin FTP ke peralatan rangkaian.

Skrip ini melancarkan tetingkap arahan saya (shell) dan menyalin data melalui FTP. Pada akhir, tutup sesi. Tidak mustahil untuk menggunakan notepad untuk ini, kerana penyalinan mengambil masa yang sangat lama dan data dalam penimbal FTP tidak akan disimpan selama itu:

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

Memasukkan nama pengguna/kata laluan menggunakan skrip

Pada satu akses pelanggan kepada peralatan rangkaian secara langsung telah ditutup. Ia adalah mungkin untuk memasuki peralatan dengan mula-mula menyambung ke Gerbang Lalai, dan dari itu kemudian ke peralatan yang disambungkan kepadanya. Pelanggan ssh terbina dalam perisian IOS/perkakasan digunakan untuk menyambung. Sehubungan itu, nama pengguna dan kata laluan telah diminta dalam konsol. Dengan skrip di bawah, nama pengguna dan kata laluan telah dimasukkan secara automatik:

# $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: Terdapat 2 skrip. Satu untuk akaun pentadbir, yang kedua untuk akaun eSIGHT.

Skrip dengan keupayaan untuk menambah data secara langsung semasa pelaksanaan skrip.

Tugasnya adalah untuk menambah laluan statik pada semua peralatan rangkaian. Tetapi pintu masuk ke Internet pada setiap peralatan adalah berbeza (dan ia berbeza daripada pintu masuk lalai). Skrip berikut memaparkan jadual penghalaan, memasuki mod konfigurasi, tidak menulis arahan hingga akhir (alamat IP pintu masuk ke Internet) - Saya menambah bahagian ini. Selepas saya menekan Enter, skrip terus melaksanakan arahan.

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

Dalam skrip ini, dalam baris: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") alamat IP get laluan tidak ditambahkan dan tiada aksara carriage return. Skrip sedang menunggu baris seterusnya dengan aksara "(config) #" Aksara ini muncul selepas saya memasukkan alamat ip dan masuk.

Kesimpulan:

Apabila menulis skrip dan melaksanakannya, peraturan mesti dipatuhi: Masa untuk menulis skrip dan melaksanakan skrip tidak boleh melebihi masa yang secara teorinya diluangkan untuk melakukan kerja yang sama secara manual (salin / tampal dari pad nota, menulis dan menyahpepijat buku permainan untuk ansible, menulis dan menyahpepijat skrip python). Iaitu, penggunaan skrip harus menjimatkan masa, dan tidak membuang masa pada automasi satu kali proses (iaitu, apabila skrip adalah unik dan tidak akan ada lagi pengulangan). Tetapi jika skrip adalah unik dan automasi dengan skrip dan menulis / menyahpepijat skrip mengambil masa yang lebih sedikit daripada melakukannya dengan cara lain (ansible, tetingkap arahan), maka skrip adalah penyelesaian terbaik.
Menyahpepijat skrip. Skrip berkembang secara beransur-ansur, penyahpepijatan berlaku semasa run-in pada peranti pertama, kedua, ketiga, dan pada peranti keempat kemungkinan besar skrip akan beroperasi sepenuhnya.

Menjalankan skrip (dengan memasukkan nama pengguna+kata laluan) dengan tetikus biasanya lebih pantas daripada menyalin Nama Pengguna dan Kata Laluan daripada pad nota. Tetapi tidak selamat dari sudut keselamatan.
Contoh lain (sebenar) apabila menggunakan skrip: Anda tidak mempunyai akses terus kepada peralatan rangkaian. Tetapi terdapat keperluan untuk mengkonfigurasi semua peralatan rangkaian (membawanya ke dalam sistem pemantauan, mengkonfigurasi Nama Pengguna/kata laluan/snmpv3nama pengguna/kata laluan tambahan). Terdapat akses apabila anda pergi ke suis Teras, daripadanya anda membuka SSH ke peralatan lain. Mengapa anda tidak boleh menggunakan Ansible. - Kerana kami menghadapi had pada bilangan sesi serentak yang dibenarkan pada peralatan rangkaian (baris vty 0 4, antara muka pengguna vty 0 4) (soalan lain ialah bagaimana untuk memulakan peralatan yang berbeza dalam Ansible dengan lompatan pertama SSH yang sama).

Skrip mengurangkan masa semasa operasi yang panjang - contohnya, menyalin fail melalui FTP. Selepas penyalinan selesai, skrip serta-merta mula berfungsi. Seseorang perlu melihat penghujung penyalinan, kemudian menyedari penghujung penyalinan, kemudian masukkan arahan yang sesuai. Skrip melakukannya secara objektif dengan lebih pantas.

Skrip boleh digunakan jika tidak mustahil untuk menggunakan alat penghantaran data massa: Konsol. Atau apabila beberapa data untuk peralatan adalah unik: nama hos, alamat ip pengurusan. Atau apabila menulis program dan menyahpepijat ia adalah lebih sukar daripada menambah data yang diterima daripada peralatan semasa skrip berjalan. - Contoh dengan skrip untuk menetapkan laluan, apabila setiap peralatan mempunyai alamat IP sendiri pembekal Internet. (Rakan sekerja saya menulis skrip sedemikian - apabila DMVPN bercakap melebihi 3. Ia perlu menukar tetapan DMVPN).

Kajian Kes: Mengkonfigurasi Tetapan Awal pada Suis Baharu Menggunakan Port Konsol:

A. Palamkan kabel konsol ke dalam peranti.
B. Jalankan skrip
B. Menunggu perlaksanaan skrip
D. Pasangkan kabel konsol ke peranti seterusnya.
E. Jika suis bukan yang terakhir, pergi ke langkah B.

Hasil daripada kerja skrip:

  • kata laluan awal ditetapkan pada peralatan.
  • Nama pengguna dimasukkan
  • alamat IP unik peranti dimasukkan.

PS operasi terpaksa diulang. Kerana ssh lalai tidak dikonfigurasikan/dilumpuhkan. (Ya, ini adalah kesilapan saya.)

Sumber terpakai.

1. Mengenai membuat skrip
2. Contoh skrip

Lampiran 1: Contoh skrip.


Contoh skrip panjang, dengan dua pertanyaan: Nama hos dan alamat IP. Ia dicipta untuk pratetap peralatan melalui konsol (9600 baud). Dan juga untuk menyediakan sambungan peralatan ke rangkaian.

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

Skrip sedemikian biasanya tidak diperlukan, tetapi jumlah peralatan ialah 15 pcs. Dibenarkan persediaan yang lebih pantas. Ia adalah lebih pantas untuk menyediakan peralatan menggunakan tetingkap Perintah SecureCRT.

Menyediakan akaun untuk ssh.

Contoh yang lain. Konfigurasi juga melalui konsol.

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


Mengenai SecureCRT:Perisian berbayar: dari $99 (harga terkecil hanya untuk SecureCRT selama satu tahun)
Laman web rasmi
Lesen perisian dibeli sekali, dengan sokongan (untuk mengemas kini), kemudian perisian digunakan dengan lesen ini untuk masa yang tidak terhad.

Berfungsi pada sistem pengendalian Mac OS X dan Windows.

Terdapat sokongan skrip (artikel ini)
Terdapat Tetingkap Perintah
Sistem Operasi Bersiri/Telnet/SSH1/SSH2/Shell

Sumber: www.habr.com