Geek School: اپنا پہلا مکمل پاور شیل اسکرپٹ لکھنا



چند ہفتے پہلے، دی گیک نے آپ کو دکھایا کہ آپ کمانڈ پرامپٹ کو یہ معلوم کرنے کے لیے کیسے استعمال کر سکتے ہیں کہ آپ کا کمپیوٹر آخری بار کب شروع ہوا تھا۔ Geek School for PowerShell کی اس آخری تنصیب میں، ہم وہی کام کرنے کے لیے دوبارہ قابل استعمال PowerShell کمانڈ لکھنے جا رہے ہیں۔

سیریز کے پچھلے مضامین ضرور پڑھیں:





اپنا پہلا اسکرپٹ لکھنا

پہلی چیز جو ہمیں کرنے کی ضرورت ہے وہ معلومات تک رسائی کا راستہ تلاش کرنا ہے جس کی ہم تلاش کر رہے ہیں۔ چونکہ ہم انتظامی معلومات کے ساتھ کام کر رہے ہیں، ہمیں شاید WMI کے استعمال پر ایک نظر ڈالنے کی ضرورت ہے، جس میں واقعی Win32_OperatingSystem نامی ایک کلاس ہے جو آپ کو آپ کے آپریٹنگ سسٹم کے بارے میں لفظی معلومات دیکھنے کی اجازت دیتی ہے، بشمول اس کے شروع ہونے کا آخری وقت۔



لہذا اب جب کہ ہم جانتے ہیں کہ ہمیں وہ معلومات کہاں سے مل سکتی ہیں جس کی ہم تلاش کر رہے ہیں، ISE کھولیں اور درج ذیل کو ٹائپ کریں۔

Get-WmiObject-Class Win32_OperatingSystem-ComputerName localhost |

منتخب-آبجیکٹ-پراپرٹی CSName، LastBootUpTime



نوٹ: مجھے اپنے کوڈ کو دو لائنوں میں تقسیم کرنا پڑا تاکہ یہ سب اسکرین شاٹ میں فٹ ہو جائیں، لیکن بلا جھجھک اسے ایک لائن پر ٹائپ کریں۔ اگر آپ اسے دو لائنوں پر تقسیم کرنے کا انتخاب کرتے ہیں، تو براہ کرم یقینی بنائیں کہ پائپ کریکٹر لائن 1 پر آخری کریکٹر ہے۔

اشتہار

اب کوڈ کو جانچنے کے لیے سبز Run Script بٹن پر کلک کریں یا اپنے کی بورڈ پر F5 بٹن دبائیں

WMI اوقات تھوڑا سا خفیہ ہوسکتا ہے۔ اس سے ہمارا مطلب ہے کہ اگر آپ LastBootUpTime پراپرٹی کو دیکھیں تو یہ 18:26:21 پر 2013-03-19 کہتا ہے، لیکن کسی وجہ سے WMI لڑکوں نے ان سب کو ایک سٹرنگ میں جوڑنے کا فیصلہ کیا۔ خوش قسمتی سے ہمارے لیے، ہمیں اسٹرنگ کو دستی طور پر پارس کرنے کے بارے میں فکر کرنے کی ضرورت نہیں ہے کیونکہ اس سے زیادہ جدید ہونے کے باوجود، ایسا کرنے کا ایک آسان طریقہ ہے۔ اس طرح نظر آنے کے لیے آپ کو کوڈ کا سلیکٹ-آبجیکٹ حصہ تبدیل کرنا ہو گا۔

منتخب-آبجیکٹ -پراپرٹی CSName,@{n=آخری بار بوٹ کیا گیا؛

e = {[Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)}}

ہم یہاں جو کچھ کر رہے ہیں وہ Last Booted نامی ایک حسب ضرورت پراپرٹی بنا رہا ہے اور یہ بتا رہا ہے کہ اس کی ویلیو موجودہ پائپ لائن آبجیکٹ کی LastBootUpTime پراپرٹی پر ToDateTime سٹیٹک طریقہ کو کال کرنے کا نتیجہ ہونی چاہیے۔ آپ کا کوڈ اب اس طرح نظر آنا چاہیے۔

کوڈ کو ابھی چلانے سے آخری بوٹ ٹائم زیادہ پڑھنے کے قابل ہوگا۔

اب جب کہ ہم اپنے اسکرپٹ کی بنیادی فعالیت سے خوش ہیں، ہمیں اسے محفوظ کرنے کی ضرورت ہے۔ سادگی کے لیے، آئیے اسے مندرجہ ذیل کے طور پر محفوظ کریں:

C: Get-LastBootTime.ps1

اب ISE کے نچلے نصف حصے پر جائیں اور درج ذیل کو چلائیں:

C: Get-LastBootTime.ps1

اشتہار

زبردست! ہمارا اسکرپٹ حسب توقع کام کر رہا ہے، تاہم ہمارے اسکرپٹ میں اب بھی ایک مسئلہ ہے۔ ہم نے اس کمپیوٹر کا نام ہارڈ کوڈ کیا ہے جس کے لیے ہم آخری بوٹ ٹائم حاصل کرنا چاہتے ہیں۔ ہارڈ کوڈنگ اقدار کے بجائے، ہمیں ایک پیرامیٹر فراہم کرنا چاہیے تاکہ جو بھی اسکرپٹ استعمال کر رہا ہے وہ منتخب کر سکے کہ وہ اسکرپٹ کو کس کمپیوٹر کے خلاف چلاتے ہیں۔ ایسا کرنے کے لیے، اپنی اسکرپٹ کے اوپری حصے پر جائیں اور درج ذیل کام کریں۔

روکو(
[string]$ComputerName
)

پھر ہارڈ کوڈ شدہ لوکل ہوسٹ ویلیو کو $ComputerName متغیر سے تبدیل کریں۔ آپ کا اسکرپٹ اب اس طرح نظر آنا چاہئے:

اپنی اسکرپٹ کو محفوظ کریں، پھر ISE کے نچلے حصے کی طرف واپس جائیں اور اپنی اسکرپٹ کے لیے مدد دیکھیں۔

مدد C:Get-LastBootTime.ps1

بہت اچھا، لہذا اب ہم اس کمپیوٹر کا نام بتا سکتے ہیں جسے ہم اپنے نئے ComputerName پیرامیٹر کو استعمال کرنے کے لیے آخری بوٹ ٹائم حاصل کرنا چاہتے ہیں۔ بدقسمتی سے، ابھی بھی کچھ چیزیں غلط ہیں۔ سب سے پہلے، ComputerName پیرامیٹر اختیاری ہے اور دوسرا، یہ سب سے بدصورت مددگار ہے جو میں نے کبھی دیکھا ہے، تو آئیے ان مسائل کو جلدی سے حل کریں۔ ComputerName پیرامیٹر کو لازمی بنانے کے لیے، پیرام بلاک کے مندرجات کو درج ذیل میں تبدیل کریں۔

[پیرامیٹر(لازمی=$true)][string]$ComputerName

جہاں تک ایک بہتر ہیلپ فائل بنانے کا تعلق ہے، سب سے عام طریقہ کمنٹ پر مبنی مدد کا استعمال کرنا ہے۔ اس کا مطلب ہے کہ ہم صرف اسکرپٹ کے اوپری حصے میں ایک اضافی طویل تبصرہ شامل کرتے ہیں۔

<#
.SYNOPSIS
ظاہر کرتا ہے کہ آپ کا کمپیوٹر آخری بار کب شروع ہوا تھا۔
.DESCRIPTION
یہ WMI ریپر فنکشن ہے اس وقت حاصل کرنے کے لیے جب آپ کا کمپیوٹر آخری بار شروع ہوا۔
.PARAMETER کمپیوٹر کا نام
اس کمپیوٹر کا نام جس کے خلاف آپ کمانڈ چلانا چاہتے ہیں۔
.مثال
گیٹ-لاسٹ بوٹ ٹائم -کمپیوٹر نام لوکل ہوسٹ
.لنک
www.howtogeek.com
#>

ایک بار جب یہ سب ہو جائے تو، آپ کو اس طرح کی اسکرپٹ کے ساتھ ختم کرنا چاہئے۔

اشتہار

آئیے اب جائیں اور ہماری نئی ہیلپ فائل کو دیکھیں۔

آہ، بہت اچھا لگ رہا ہے! اب جب کہ ہمارا اسکرپٹ مکمل ہو گیا ہے، ہمارے پاس ایک آخری چیز ہے: ٹیسٹنگ۔ اس کے لیے، میں ISE سے باہر نکل کر پاور شیل کنسول میں واپس جا رہا ہوں تاکہ ہم اس بات کو یقینی بنا سکیں کہ کوئی بے ضابطگی نہیں ہے۔

اگر آپ ایک سادہ ون لائنر کے ساتھ شروع کرتے ہیں اور صرف اس پر تعمیر کرتے رہتے ہیں جیسا کہ ہم نے اس گائیڈ میں کیا تھا، تو آپ کو کچھ ہی دیر میں اس کا پتہ چل جائے گا۔ اس وقت لوگوں کے لیے بس اتنا ہی ہے، Geek School کی اگلی تنصیب میں ملتے ہیں۔

اگلا پڑھیں پروفائل تصویر برائے ٹیلر گِب ٹیلر گِب
ٹیلر گِب ایک پیشہ ور سافٹ ویئر ڈویلپر ہے جس کا تقریباً ایک دہائی کا تجربہ ہے۔ انہوں نے جنوبی افریقہ میں مائیکروسافٹ کے علاقائی ڈائریکٹر کے طور پر دو سال تک خدمات انجام دیں اور متعدد مائیکروسافٹ MVP (موسٹ ویلیوڈ پروفیشنل) ایوارڈز حاصل کر چکے ہیں۔ وہ فی الحال ڈیریوکو انٹرنیشنل میں R&D میں کام کرتا ہے۔
مکمل بائیو پڑھیں

دلچسپ مضامین