Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Муҳандисони шабака аксар вақт бо вазифаи нусхабардорӣ/часбонидани порчаҳои муайян аз блокнот ба консол рӯбарӯ мешаванд. Шумо одатан бояд якчанд параметрҳоро нусхабардорӣ кунед: Номи корбар/парол ва чизи дигар. Истифодаи скриптҳо ба шумо имкон медиҳад, ки ин равандро суръат бахшед. АММО вазифаҳои навиштани скрипт ва иҷрои скрипт бояд дар маҷмӯъ нисбат ба конфигуратсияи дастӣ вақти камтарро талаб кунанд, вагарна скриптҳо бефоидаанд.

Ин мақола барои чӣ аст? Ин мақола аз силсилаи Fast Start буда, ба сарфаи вақти муҳандисони шабака ҳангоми насби таҷҳизот (вазифаи ягона) дар дастгоҳҳои гуногун нигаронида шудааст. Нармафзори SecureCRT ва функсияи скрипти дарунсохтро истифода мебарад.

Мундариҷа

Муқаддима

Барномаи SecureCRT дорои механизми дарунсохташудаи иҷрои скрипт мебошад. Скриптҳои терминал барои чӣ кор мекунанд?

  • Автоматикунонидашудаи вуруд/чор ва тасдиқи ҳадди ақали вуруд/чор.
  • Иҷрои вазифаҳои муқаррариро суръат диҳед - кам кардани таваққуф байни танзимоти таҷҳизот. (Амали кам кардани таваққуфҳо, ки бо сабаби вақти иҷро кардани амалҳои нусхабардорӣ/ гузашта дар як сахтафзор ба вуҷуд омадаанд, бо 3 ё зиёда фрагментҳои фармон ба сахтафзор татбиқ карда мешаванд.)

Ин ҳуҷҷат вазифаҳои зеринро дар бар мегирад:

  • Эҷоди скриптҳои оддӣ.
  • Иҷрои скриптҳо дар SecureCRT.
  • Намунаҳои истифодаи скриптҳои оддӣ ва пешрафта. (Таҷриба аз ҳаёти воқеӣ.)

Эҷоди скриптҳои оддӣ.

Скриптҳои соддатарин танҳо ду фармонро истифода мебаранд, Ирсол ва WaitForString. Ин функсия барои 90% (ё бештар аз он) вазифаҳои иҷрошуда кофӣ аст.

Скриптҳо метавонанд дар Python, JS, VBS (Visual Basic), Perl ва ғайра кор кунанд.

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

Одатан файл бо тамдиди "*.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

Одатан файл бо тамдиди "*.vbs"

Бо истифода аз вуруди скрипт скрипт эҷод кунед.

Ба шумо имкон медиҳад, ки раванди навиштани скриптро автоматӣ кунед. Шумо ба навиштани скрипт шурӯъ мекунед. SecureCRT фармонҳо ва посухи минбаъдаи сахтафзорро сабт мекунад ва скрипти тайёрро барои шумо намоиш медиҳад.

А. Ба навиштани скрипт оғоз кунед:
Менюи SecureCRT => Скрипт => Скрипти сабтро оғоз кунед
б. Амалҳоро бо консол иҷро кунед (қадамҳои конфигуратсияро дар CLI иҷро кунед).
В. Навиштани скриптро анҷом диҳед:
Менюи SecureCRT => Скрипт => Сабти скриптро қатъ кунед…
Файли скриптро захира кунед.

Намунаи фармонҳои иҷрошуда ва скрипти захирашуда:

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Иҷрои скриптҳо дар SecureCRT.

Пас аз эҷод/таҳрири скрипт, саволи табиӣ ба миён меояд: Скриптро чӣ гуна бояд татбиқ кард?
Инҳоянд:

  • Иҷроиши дастӣ аз менюи Скрипт
  • Оғози худкор пас аз пайвастшавӣ (скрипти воридшавӣ)
  • Воридшавӣ ба таври худкор бидуни истифодаи скрипт
  • Интиқоли дастӣ бо тугма дар SecureCRT (тугма ҳанӯз сохта нашудааст ва ба SecureCRT илова карда шудааст)

Иҷроиши дастӣ аз менюи Скрипт

Менюи SecureCRT => Скрипт => Иҷро кардан…
- 10 скрипти охирин дар хотир нигоҳ дошта мешаванд ва барои оғози зуд дастрасанд:
Менюи SecureCRT => Скрипт => 1 "Номи файли скрипт"
Менюи SecureCRT => Скрипт => 2 "Номи файли скрипт"
Менюи SecureCRT => Скрипт => 3 "Номи файли скрипт"
Менюи SecureCRT => Скрипт => 4 "Номи файли скрипт"
Менюи SecureCRT => Скрипт => 5 "Номи файли скрипт"

Оғози худкор пас аз пайвастшавӣ (скрипти воридшавӣ)

Танзимоти скрипти сабти худкор барои сессияи захирашуда танзим карда шудааст: Пайваст => Амалҳои воридшавӣ => Скрипти воридшавӣ

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Воридшавӣ ба таври худкор бидуни истифодаи скрипт

Бе навиштани скрипт номи корбарии паролро ба таври худкор ворид кардан мумкин аст, танҳо бо истифода аз функсияи дарунсохташудаи SecureCRT. Дар танзимоти пайвастшавӣ "Пайваст" => Амалҳои воридшавӣ => Воридшавӣ автоматӣ - шумо бояд якчанд бастаҳоро пур кунед - ин маънои ҷуфтҳоро дорад: "Матни интизорӣ" + "Аломатҳои ба ин матн фиристодашуда" чунин ҷуфтҳо метавонанд зиёд бошанд. (Мисол: ҷуфти 1-ум интизори номи корбар, дуюм интизори парол, сеюм интизори дархости ҳолати имтиёзнок, ҷуфти чорум барои пароли ҳолати имтиёзнок.)

Намунаи воридшавии худкор дар Cisco ASA:

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Интиқоли дастӣ бо тугма дар SecureCRT (тугма ҳанӯз сохта нашудааст ва ба SecureCRT илова карда шудааст)

Дар SecureCRT, шумо метавонед скриптро ба тугма таъин кунед. Тугма ба панели махсус барои ин мақсад сохташуда илова карда мешавад.

А. Илова кардани панел ба интерфейс: Менюи SecureCRT => Намоиш => Панели тугма
б. Тугмаеро ба панел илова кунед ва скрипт илова кунед. - Тугмаи ростро пахш карда, аз менюи контекстӣ "Тугмаи нав..." -ро интихоб кунед.
В. Дар равзанаи муколамаи "Тугмаи харита", дар майдони "Амал" амали "Иҷрои скрипт"-ро (функсия) интихоб кунед.
Барои тугма сарлавҳаро муайян кунед. Ранги тасвири тугма. Танзимотро бо пахш кардани Хуб анҷом диҳед.

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Эзоҳ:

Панели дорои тугмаҳо вазифаи хеле муфид аст.

1. Ҳангоми ворид шудан ба сеанси мушаххас, муайян кардан мумкин аст, ки кадом панел ба ин ҷадвал кушода мешавад.

2. Барои амалҳои стандартӣ бо таҷҳизот амалҳои пешакӣ муайяншударо таъин кардан мумкин аст: намоиши версия, нишон додани run-config, захира кардани конфигуратсия.

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо
Ягон скрипт ба ин тугмаҳо замима карда нашудааст. Танҳо хати амал:

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо
Танзимот - ба тавре ки ҳангоми гузаштан ба сессия панели зарурӣ бо тугмаҳо дар танзимоти сессия кушода мешавад:

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо
Барои фармоишгар скриптҳои инфиродӣ барои Вуруд насб кардан ва ба панел бо фармонҳои зуд-зуд барои фурӯшанда рафтан маъно дорад.

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо
Вақте ки шумо тугмаи Go Cisco-ро пахш мекунед, панел ба панели тугмаи Cisco мегузарад.

Автоматикунонии вуруд дар SecureCRT бо истифода аз скриптҳо

Намунаҳои истифодаи скриптҳои оддӣ ва пешрафта. (Таҷриба аз ҳаёти воқеӣ.)

Скриптҳои оддӣ тақрибан барои ҳама ҳолатҳо кофӣ мебошанд. Аммо боре ба ман лозим омад, ки сценарияро каме мураккаб кунам — барои тезонидани кор. Ин мушкилӣ танҳо дар қуттии муколама аз корбар маълумоти иловагӣ талаб мекард.

Дархости маълумот аз корбар бо истифода аз қуттии муколама

Ман дар скрипти дархости маълумот 2 доштам. Ин номи мизбон ва октети 4-уми суроғаи IP аст. Барои иҷрои ин амал - ман google-ро ҷустуҷӯ кардам, ки чӣ тавр ин корро кардан лозим аст ва онро дар вебсайти расмии SecureCRT (vandyke) ёфтам. - функсия фаврӣ номида мешавад.

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

Ин қисми скрипт номи мизбон ва рақамҳоро аз октети охирин талаб кард. Зеро 15 адад тачхизот мавчуд буд. Ва маълумот дар ҷадвал пешниҳод карда шуд, пас ман арзишҳоро аз ҷадвал нусхабардорӣ кардам ва онро ба қуттиҳои муколама часпондам. Минбаъд скрипт мустақилона кор мекард.

Нусхабардории FTP ба таҷҳизоти шабакавӣ.

Ин скрипт равзанаи фармони маро (ниҳонӣ) оғоз кард ва маълумотро тавассути FTP нусхабардорӣ кард. Дар охир сессияро пӯшед. Барои ин истифода бурдани блокнот ғайриимкон аст, зеро нусхабардорӣ вақти хеле тӯлонӣ мегирад ва маълумот дар буфери FTP дар муддати тӯлонӣ нигоҳ дошта намешавад:

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

Ворид кардани номи корбар/парол бо истифода аз скрипт

Дар як муштарӣ дастрасии мустақим ба таҷҳизоти шабака баста шуд. Ба тачхизот аввал бо пайваст шудан ба шлюзи пешфарз ва аз он баъд ба тачхизоти ба он пайвастшуда дохил шудан мумкин буд. Мизоҷи ssh, ки дар нармафзори IOS/сахтафзор сохта шудааст, барои пайвастшавӣ истифода мешуд. Мувофиқи он, номи корбар ва парол дар консол дархост карда шуд. Бо скрипти зер номи корбар ва парол ба таври худкор ворид карда шуданд:

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

Эзоҳ: 2 скрипт мавҷуд буд: Яке барои ҳисоби администратор, дуюм барои ҳисоби eSIGHT.

Скрипт бо қобилияти мустақиман илова кардани маълумот ҳангоми иҷрои скрипт.

Вазифа аз он иборат буд, ки маршрути статикӣ дар тамоми таҷҳизоти шабакавӣ илова карда шавад. Аммо дарвозаи интернет дар ҳар як таҷҳизот гуногун буд (ва он аз дарвозаи пешфарз фарқ мекард). Скрипти зерин ҷадвали масирро нишон дод, ба реҷаи конфигуратсия ворид шуд, фармонро то охир нанавишт (адреси IP-и дарвозаи интернет) - ман ин қисмро илова кардам. Пас аз пахш кардани Enter, скрипт иҷрои фармонро идома дод.

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

Дар ин скрипт, дар сатри: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") суроғаи IP-и дарвоза илова карда нашудааст ва аломати баргардонидани вагон вуҷуд надорад. Скрипт интизори сатри навбатӣ бо аломатҳои "(config) #" аст. Ин аломатҳо пас аз ворид кардани суроғаи IP ва ворид кардани ман пайдо шуданд.

хулосаи:

Ҳангоми навиштани скрипт ва иҷрои он қоида бояд риоя карда шавад: Вақти навиштани скрипт ва иҷрои скрипт ҳеҷ гоҳ набояд аз вақти назариявӣ барои иҷро кардани як кор дастӣ (нусхабардорӣ/часбондан аз блокнот, навиштан ва ислоҳ кардан) зиёд бошад. китоби бозӣ барои скрипти psible, навиштан ва ислоҳи python). Яъне, истифодаи скрипт бояд вақтро сарфа кунад, на барои автоматикунонии якдафъаина равандҳо (яъне, вақте ки скрипт беназир аст ва дигар такрор нахоҳад шуд). Аммо агар скрипт беназир бошад ва автоматизатсия бо скрипт ва навиштан / ислоҳи скрипт нисбат ба иҷрои он бо ягон роҳи дигар вақти камтарро талаб кунад (ансибӣ, равзанаи фармон), пас скрипт беҳтарин роҳи ҳалли он аст.
Ислоҳоти скрипт. Скрипт тадриҷан афзоиш меёбад, ислоҳкунӣ дар дастгоҳи якум, дуюм, сеюм сурат мегирад ва то чорум скрипт эҳтимолан пурра кор мекунад.

Иҷрои скрипт (бо ворид кардани номи корбар+парол) бо муш одатан назар ба нусхабардории номи корбар ва парол аз блокнот тезтар аст. Аммо аз нуқтаи назари амният бехатар нест.
Мисоли дигар (воқеӣ) ҳангоми истифодаи скрипт: Шумо ба таҷҳизоти шабака дастрасии мустақим надоред. Аммо зарурати танзим кардани тамоми таҷҳизоти шабакавӣ вуҷуд дорад (онро ба системаи мониторинг оваред, номи Логин / парол / snmpv3username / паролро танзим кунед). Вақте ки шумо ба коммутаторҳои асосӣ меравед, дастрасӣ вуҷуд дорад, аз он шумо SSH-ро ба таҷҳизоти дигар мекушоед. Чаро шумо метавонед Ansible-ро истифода набаред. - Азбаски мо ба маҳдудияти шумораи сеансҳои ҳамзамон дар таҷҳизоти шабакавӣ дучор мешавем (хати vty 0 4, интерфейси корбар vty 0 4) (саволи дигар ин аст, ки чӣ гуна таҷҳизоти гуногунро дар Ansible бо ҳамон SSH аввалин хоп оғоз кардан мумкин аст).

Скрипт вақтро дар давоми амалиёти тӯлонӣ кам мекунад - масалан, нусхабардории файлҳо тавассути FTP. Пас аз анҷоми нусхабардорӣ, скрипт фавран ба кор шурӯъ мекунад. Шахсе бояд анҷоми нусхабардориро бубинад, пас анҷоми нусхабардориро дарк кунад ва фармонҳои мувофиқро ворид кунад. Скрипт ин корро объективона тезтар мекунад.

Скриптҳо дар ҷое татбиқ мешаванд, ки истифодаи воситаҳои интиқоли маълумоти оммавӣ ғайриимкон аст: Консол. Ё вақте ки баъзе маълумотҳо барои таҷҳизот нодиранд: номи мизбон, суроғаи IP идоракунии. Ё ҳангоми навиштани барнома ва ислоҳи ислоҳи он аз илова кардани маълумоти аз таҷҳизот гирифташуда ҳангоми кор кардани скрипт мушкилтар аст. - Намунае бо скрипт барои таъини масир, вақте ки ҳар як таҷҳизот суроғаи IP-и провайдери интернетии худро дорад. (Ҳамкасбони ман чунин скриптҳоро менавиштанд - вақте ки DMVPN сухан мегуфт, зиёда аз 3 буд. Танзимоти DMVPN-ро тағир додан лозим буд).

Омӯзиши мисол: Танзими танзимоти ибтидоӣ дар коммутатори нав бо истифода аз портҳои консол:

A. Сими консолро ба дастгоҳ пайваст кард.
B. Скриптро иҷро кунед
Б. мунтазири ичрои сценария буд
D. Сими консолро ба дастгоҳи навбатӣ пайваст.
E. Агар гузариш охирин набошад, ба қадами B гузаред.

Дар натиҷаи кори скрипт:

  • пароли ибтидой дар тачхизот гузошта шудааст.
  • Номи корбар ворид карда шуд
  • суроғаи IP-и беназири дастгоҳ ворид карда мешавад.

PS амалиётро такрор кардан лозим омад. Азбаски ssh пешфарз конфигуратсия/фаъол карда нашудааст. (Бале, ин хатои ман аст.)

Сарчашмаҳои истифодашуда.

1. Дар бораи сохтани скриптҳо
2. Намунаҳои скрипт

Замимаи 1: Намунаи скриптҳо.


Намунаи скрипти дароз бо ду дархост: Номи мизбон ва суроғаи IP. Он барои насб кардани таҷҳизот тавассути консол (9600 boud) сохта шудааст. Ва инчунин барои омода кардани пайвасти таҷҳизот ба шабака.

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

Чунин скриптҳо одатан лозим нестанд, аммо миқдори таҷҳизот 15 дона аст. Танзими зудтар иҷозат дода мешавад. Бо истифода аз равзанаи Фармони SecureCRT насб кардани таҷҳизот тезтар буд.

Насб кардани ҳисоб барои ssh.

Мисоли дигар. Танзимот инчунин тавассути консол аст.

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


Дар бораи SecureCRT:Нармафзори пулакӣ: аз $99 (нархи камтарин танҳо барои SecureCRT барои як сол аст)
Сомонаи расмӣ
Литсензияи нармафзор як маротиба бо дастгирӣ (барои навсозӣ) харида мешавад, пас нармафзор бо ин иҷозатнома барои муддати номаҳдуд истифода мешавад.

Дар системаҳои оператсионии Mac OS X ва Windows кор мекунад.

Дастгирии скрипт вуҷуд дорад (ин мақола)
вуҷуд доранд равзанаи фармон
Serial / Telnet / SSH1 / SSH2 / Системаи оператсионии Shell

Манбаъ: will.com