پرو ہوسٹر > بلاگ > انتظامیہ > سکرپٹ کا استعمال کرتے ہوئے SecureCRT میں خودکار اندراج
سکرپٹ کا استعمال کرتے ہوئے SecureCRT میں خودکار اندراج
نیٹ ورک انجینئرز کو اکثر نوٹ پیڈ سے کنسول میں کچھ ٹکڑوں کو کاپی/پیسٹ کرنے کا کام درپیش ہوتا ہے۔ آپ کو عام طور پر کئی پیرامیٹرز کاپی کرنے پڑتے ہیں: یوزر نیم/پاس ورڈ اور کچھ اور۔ سکرپٹ کا استعمال آپ کو اس عمل کو تیز کرنے کی اجازت دیتا ہے۔ لیکن اسکرپٹ لکھنے اور اسکرپٹ کو چلانے کے کاموں میں دستی ترتیب کے مقابلے میں کل کم وقت لگنا چاہئے، ورنہ اسکرپٹ بیکار ہیں۔
یہ مضمون کس کے لیے ہے؟ یہ مضمون فاسٹ سٹارٹ سیریز سے ہے اور اس کا مقصد نیٹ ورک انجینئرز کے وقت کو بچانا ہے جب ایک سے زیادہ آلات پر آلات (سنگل ٹاسک) ترتیب دیتے ہیں۔ SecureCRT سافٹ ویئر اور بلٹ ان اسکرپٹ پر عمل درآمد کی فعالیت کا استعمال کرتا ہے۔ مواد
SecureCRT پروگرام میں ایک بلٹ ان اسکرپٹ پر عمل درآمد کا طریقہ کار موجود ہے۔ ٹرمینل اسکرپٹس کس کے لیے ہیں؟
خودکار I/O، اور کم سے کم I/O توثیق۔
معمول کے کاموں کی تکمیل کو تیز کریں - آلات کی ترتیبات کے درمیان وقفے کو کم کریں۔ (ایک ہی ہارڈ ویئر پر کاپی/ماضی کی کارروائیوں کو انجام دینے کے لیے وقت کی وجہ سے وقفوں کی ڈی فیکٹو کمی، جس میں 3 یا اس سے زیادہ کمانڈ کے ٹکڑے ہارڈ ویئر پر لاگو کیے جائیں گے۔)
اس دستاویز میں کاموں کا احاطہ کیا گیا ہے:
سادہ اسکرپٹ کی تخلیق۔
SecureCRT پر اسکرپٹ چل رہا ہے۔
سادہ اور جدید اسکرپٹ استعمال کرنے کی مثالیں۔ (حقیقی زندگی سے مشق کریں۔)
سادہ اسکرپٹ کی تخلیق۔
آسان ترین اسکرپٹ صرف دو کمانڈز کا استعمال کرتی ہیں، Send اور WaitForString۔ یہ فعالیت 90% (یا اس سے زیادہ) کیے گئے کاموں کے لیے کافی ہے۔
اسکرپٹس Python، JS، VBS (Visual Basic)، Perl وغیرہ میں کام کر سکتی ہیں۔
# $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 کمانڈز اور اس کے بعد ہارڈ ویئر کے جواب کو ریکارڈ کرتا ہے اور آپ کے لیے تیار شدہ اسکرپٹ دکھاتا ہے۔
اے۔ اسکرپٹ لکھنا شروع کریں:
سیکیور سی آر ٹی مینو => اسکرپٹ => اسٹارٹ ریکارڈنگ اسکرپٹ
ب کنسول کے ساتھ اعمال انجام دیں (CLI میں ترتیب کے مراحل کو انجام دیں)۔
وی اسکرپٹ لکھنا ختم کریں:
سیکیور سی آر ٹی مینو => اسکرپٹ => اسکرپٹ ریکارڈنگ بند کریں…
اسکرپٹ فائل کو محفوظ کریں۔
پھانسی شدہ کمانڈز اور محفوظ کردہ اسکرپٹ کی مثال:
SecureCRT پر اسکرپٹ چل رہا ہے۔
اسکرپٹ بنانے/ترمیم کرنے کے بعد، ایک فطری سوال پیدا ہوتا ہے: اسکرپٹ کو کیسے لاگو کیا جائے؟
کئی طریقے ہیں:
اسکرپٹ مینو سے دستی طور پر چل رہا ہے۔
کنکشن کے بعد خودکار آغاز (لاگ آن اسکرپٹ)
اسکرپٹ کا استعمال کیے بغیر خودکار لاگ ان
SecureCRT میں بٹن کے ساتھ دستی طور پر ٹرگر کرنا (ایک بٹن بنانا اور SecureCRT میں شامل کرنا باقی ہے)
اسکرپٹ مینو سے دستی طور پر چل رہا ہے۔
سیکیور سی آر ٹی مینو => اسکرپٹ => چلائیں…
- آخری 10 اسکرپٹس یاد ہیں اور فوری لانچ کے لیے دستیاب ہیں:
سیکیور سی آر ٹی مینو => اسکرپٹ => 1 "اسکرپٹ فائل کا نام"
سیکیور سی آر ٹی مینو => اسکرپٹ => 2 "اسکرپٹ فائل کا نام"
سیکیور سی آر ٹی مینو => اسکرپٹ => 3 "اسکرپٹ فائل کا نام"
سیکیور سی آر ٹی مینو => اسکرپٹ => 4 "اسکرپٹ فائل کا نام"
سیکیور سی آر ٹی مینو => اسکرپٹ => 5 "اسکرپٹ فائل کا نام"
کنکشن کے بعد خودکار آغاز (لاگ آن اسکرپٹ)
خودکار لاگنگ اسکرپٹ کی ترتیبات محفوظ شدہ سیشن کے لیے ترتیب دی گئی ہیں: کنکشن => لاگ ان ایکشنز => لاگ ان اسکرپٹ
اسکرپٹ کا استعمال کیے بغیر خودکار لاگ ان
اسکرپٹ لکھے بغیر خود بخود پاس ورڈ کا صارف نام درج کرنا ممکن ہے، صرف SecureCRT کی بلٹ ان فعالیت کا استعمال کرتے ہوئے۔ کنکشن کی ترتیبات میں "کنکشن" => لاگ ان ایکشنز => خودکار لاگ ان - آپ کو کئی بنڈل بھرنے کی ضرورت ہے - جس کا مطلب ہے جوڑے: "متوقع متن" + "اس متن میں حروف بھیجے گئے" ایسے بہت سے جوڑے ہوسکتے ہیں۔ (مثال: پہلا جوڑا صارف نام کا انتظار کر رہا ہے، دوسرا پاس ورڈ کا انتظار کر رہا ہے، تیسرا مراعات یافتہ موڈ پرامپٹ کا انتظار کر رہا ہے، چوتھا جوڑا مراعات یافتہ موڈ پاس ورڈ کے لیے۔)
سسکو ASA پر خودکار لاگ ان کی مثال:
SecureCRT میں بٹن کے ساتھ دستی طور پر ٹرگر کرنا (ایک بٹن بنانا اور SecureCRT میں شامل کرنا باقی ہے)
SecureCRT میں، آپ بٹن کو اسکرپٹ تفویض کر سکتے ہیں۔ بٹن کو اس مقصد کے لیے خاص طور پر بنائے گئے پینل میں شامل کیا جاتا ہے۔
اے۔ انٹرفیس میں پینل شامل کرنا: سیکیور سی آر ٹی مینو => ویو => بٹن بار
ب پینل میں ایک بٹن شامل کریں اور اسکرپٹ شامل کریں۔ - بٹن بار پر دائیں کلک کریں اور سیاق و سباق کے مینو سے "نیا بٹن…" منتخب کریں۔
وی "میپ بٹن" ڈائیلاگ باکس میں، "ایکشن" فیلڈ میں، "رن اسکرپٹ" ایکشن (فنکشن) کو منتخب کریں۔
بٹن کے لیے کیپشن کی وضاحت کریں۔ بٹن آئیکن کا رنگ۔ ٹھیک ہے پر کلک کرکے ترتیبات کو ختم کریں۔
نوٹ:
بٹنوں کے ساتھ پینل بہت مفید فعالیت ہے۔
1. یہ ممکن ہے، جب کسی مخصوص سیشن میں لاگ ان کریں، تو یہ بتانے کے لیے کہ اس ٹیب پر کون سا پینل بطور ڈیفالٹ کھولنا ہے۔
2. یہ ممکن ہے کہ آلات کے ساتھ معیاری کارروائیوں کے لیے پہلے سے طے شدہ کارروائیاں ترتیب دیں: شو ورژن دکھائیں، رننگ کنفیگریشن دکھائیں، کنفیگریشن کو محفوظ کریں۔
ان بٹنوں کے ساتھ کوئی اسکرپٹ منسلک نہیں ہے۔ صرف ایکشن لائن:
ترتیب - تاکہ سیشن میں سوئچ کرتے وقت، بٹنوں کے ساتھ ضروری پینل سیشن کی ترتیبات میں کھلتا ہے:
گاہک کے لیے لاگ ان کے لیے انفرادی اسکرپٹس ترتیب دینا اور وینڈر کے لیے متواتر احکامات کے ساتھ پینل پر جانا سمجھ میں آتا ہے۔
جب آپ Go Cisco بٹن دباتے ہیں، تو پینل سسکو بٹن بار میں بدل جاتا ہے۔
سادہ اور جدید اسکرپٹ استعمال کرنے کی مثالیں۔ (حقیقی زندگی سے مشق کریں۔)
سادہ سکرپٹ تقریباً تمام مواقع کے لیے کافی ہیں۔ لیکن ایک بار جب مجھے اسکرپٹ کو تھوڑا سا پیچیدہ کرنے کی ضرورت پڑی - کام کو تیز کرنے کے لیے۔ اس پیچیدگی نے صارف سے ڈائیلاگ باکس میں صرف اضافی ڈیٹا کی درخواست کی۔
ڈائیلاگ باکس کا استعمال کرتے ہوئے صارف سے ڈیٹا کی درخواست کرنا
میرے پاس ڈیٹا ریکوئسٹ اسکرپٹ میں 2 تھا۔ یہ ہوسٹ نیم ہے اور IP ایڈریس کا چوتھا آکٹیٹ ہے۔ اس عمل کو انجام دینے کے لیے - میں نے اسے کیسے کرنا ہے گوگل کیا اور اسے SecureCRT (vandyke) کی آفیشل ویب سائٹ پر پایا۔ - فعالیت کو پرامپٹ کہا جاتا ہے۔
اسکرپٹ کے اس حصے نے آخری آکٹیٹ سے میزبان نام اور نمبرز مانگے۔ چونکہ سامان کے 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 کلائنٹ کو کنیکٹ کرنے کے لیے استعمال کیا گیا تھا۔ اس کے مطابق کنسول میں صارف نام اور پاس ورڈ کی درخواست کی گئی۔ نیچے دیے گئے اسکرپٹ کے ساتھ، صارف نام اور پاس ورڈ خود بخود درج ہو گئے تھے۔
# $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 اکاؤنٹ کے لیے۔
اسکرپٹ پر عمل درآمد کے دوران ڈیٹا کو براہ راست شامل کرنے کی صلاحیت کے ساتھ اسکرپٹ۔
کام تمام نیٹ ورک آلات پر ایک جامد راستہ شامل کرنا تھا۔ لیکن ہر آلات پر انٹرنیٹ کا گیٹ وے مختلف تھا (اور یہ پہلے سے طے شدہ گیٹ وے سے مختلف تھا)۔ مندرجہ ذیل اسکرپٹ نے روٹنگ ٹیبل کو ظاہر کیا، کنفیگریشن موڈ میں داخل ہوا، کمانڈ کو آخر تک نہیں لکھا (انٹرنیٹ کے گیٹ وے کا آئی پی ایڈریس) - میں نے یہ حصہ شامل کیا۔ میں نے 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) #" یہ حروف میرے آئی پی ایڈریس درج کرنے اور داخل کرنے کے بعد ظاہر ہوئے۔
نتیجہ:
اسکرپٹ لکھتے وقت اور اس پر عمل کرتے وقت، اس قاعدے پر عمل کرنا ضروری ہے: اسکرپٹ لکھنے اور اسکرپٹ پر عمل کرنے کا وقت نظریاتی طور پر ایک ہی کام کو دستی طور پر کرنے میں صرف ہونے والے وقت سے زیادہ نہیں ہونا چاہئے (نوٹ پیڈ سے کاپی / پیسٹ، لکھنا اور ڈیبگ کرنا) قابل جواب، تحریری اور ڈیبگنگ ازگر اسکرپٹ کے لیے ایک پلے بک)۔ یعنی، اسکرپٹ کے استعمال سے وقت کی بچت ہونی چاہیے، اور عمل کے یک وقتی آٹومیشن پر وقت ضائع نہیں کرنا چاہیے (یعنی جب اسکرپٹ منفرد ہو اور اس میں مزید تکرار نہ ہو)۔ لیکن اگر اسکرپٹ منفرد ہے اور اسکرپٹ کے ساتھ آٹومیشن ہے اور اسکرپٹ کو لکھنے/ڈیبگ کرنے میں اسے کسی اور طریقے سے کرنے کے مقابلے میں کم وقت لگتا ہے (قابل قبول، کمانڈ ونڈو)، تو اسکرپٹ بہترین حل ہے۔
اسکرپٹ کو ڈیبگ کرنا۔ اسکرپٹ آہستہ آہستہ بڑھتا ہے، پہلی، دوسری، تیسری ڈیوائس پر رن ان پر ڈیبگنگ ہوتی ہے، اور چوتھے تک اسکرپٹ مکمل طور پر کام کرنے کا امکان ہے۔
ماؤس کے ساتھ اسکرپٹ (یوزر نیم + پاس ورڈ درج کرکے) چلانا عام طور پر نوٹ پیڈ سے صارف نام اور پاس ورڈ کاپی کرنے سے زیادہ تیز ہوتا ہے۔ لیکن حفاظتی نقطہ نظر سے محفوظ نہیں۔
اسکرپٹ استعمال کرتے وقت ایک اور (حقیقی) مثال: آپ کو نیٹ ورک کے آلات تک براہ راست رسائی نہیں ہے۔ لیکن نیٹ ورک کے تمام آلات کو ترتیب دینے کی ضرورت ہے (اسے مانیٹرنگ سسٹم میں لائیں، ایک اضافی Username/password/snmpv3username/password ترتیب دیں)۔ جب آپ کور سوئچ پر جاتے ہیں تو وہاں رسائی ہوتی ہے، اس سے آپ SSH کو دوسرے آلات پر کھولتے ہیں۔ آپ جوابی استعمال کیوں نہیں کر سکتے؟ - کیونکہ ہم نیٹ ورک آلات پر بیک وقت اجازت دیے جانے والے سیشنز کی ایک حد تک پہنچ جاتے ہیں (لائن vty 0 4، user-interface vty 0 4) (ایک اور سوال یہ ہے کہ ایک ہی SSH فرسٹ ہاپ کے ساتھ Ansible میں مختلف آلات کیسے شروع کیے جائیں)۔
اسکرپٹ طویل آپریشنز کے دوران وقت کو کم کرتی ہے - مثال کے طور پر، FTP کے ذریعے فائلوں کو کاپی کرنا۔ کاپی مکمل ہونے کے بعد، اسکرپٹ فوری طور پر کام کرنا شروع کر دیتا ہے۔ ایک شخص کو کاپی کرنے کا انجام دیکھنے کی ضرورت ہوگی، پھر کاپی کرنے کے اختتام کا احساس ہو گا، پھر مناسب احکامات درج کریں۔ اسکرپٹ اسے معروضی طور پر تیزی سے کرتا ہے۔
اسکرپٹ کا اطلاق ہوتا ہے جہاں بڑے پیمانے پر ڈیٹا ڈیلیوری ٹولز کا استعمال کرنا ناممکن ہوتا ہے: کنسول۔ یا جب آلات کے لیے کچھ ڈیٹا منفرد ہو: میزبان نام، انتظامی آئی پی ایڈریس۔ یا کسی پروگرام کو لکھتے وقت اور ڈیبگ کرتے وقت اسکرپٹ کے چلنے کے دوران آلات سے حاصل کردہ ڈیٹا کو شامل کرنے سے زیادہ مشکل ہوتا ہے۔ - روٹ تجویز کرنے کے لیے اسکرپٹ کے ساتھ ایک مثال، جب ہر آلات کا انٹرنیٹ فراہم کنندہ کا اپنا IP پتہ ہوتا ہے۔ (میرے ساتھیوں نے اس طرح کے اسکرپٹ لکھے - جب DMVPN بولا 3 سے زیادہ تھا۔ DMVPN کی ترتیبات کو تبدیل کرنا ضروری تھا)۔
کیس اسٹڈی: کنسول پورٹس کا استعمال کرتے ہوئے ایک نئے سوئچ پر ابتدائی ترتیبات کو ترتیب دینا:
A. کنسول کیبل کو ڈیوائس میں لگائیں۔
B. اسکرپٹ چلائیں۔
B. اسکرپٹ پر عمل درآمد کا انتظار کیا۔
D. کنسول کیبل کو اگلی ڈیوائس میں لگائیں۔
E. اگر سوئچ آخری نہیں ہے، تو مرحلہ B پر جائیں۔
اسکرپٹ کے کام کے نتیجے میں:
ابتدائی پاس ورڈ آلات پر سیٹ کیا جاتا ہے۔
صارف نام درج کر دیا گیا۔
ڈیوائس کا منفرد IP ایڈریس درج کیا گیا ہے۔
PS آپریشن کو دہرانا پڑا۔ کیونکہ ڈیفالٹ ssh کو کنفیگر/غیر فعال نہیں کیا گیا تھا۔ (ہاں، یہ میری غلطی ہے۔)
ایک طویل اسکرپٹ کی ایک مثال، دو سوالات کے ساتھ: میزبان نام اور IP پتہ۔ یہ کنسول (9600 بوڈ) کے ذریعے سازوسامان کو پہلے سے ترتیب دینے کے لیے بنایا گیا تھا۔ اور نیٹ ورک سے سامان کا کنکشن بھی تیار کرنا۔
اس طرح کے سکرپٹ کی عام طور پر ضرورت نہیں ہے، لیکن سامان کی مقدار 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 آپریٹنگ سسٹم پر کام کرتا ہے۔
اسکرپٹ سپورٹ ہے (یہ مضمون)
ہے کمانڈ ونڈو
سیریل/ٹیل نیٹ/SSH1/SSH2/شیل آپریٹنگ سسٹم