سینتکس دستورات در پاورشل

منتشر شده در دسته : پاورشل

زمان این رسیده که درون ساختار دستوری دستورات پاورشل شیرجه بزنیم . آماده شوید …

ساختار دستوری دستورات پاورشل

یک دستور را که قبلاً در داس با آن کار می‌کردید را به خاطر بیاورید . چنین ساختاری دارد :

dir *.* /s

در این ساختار دستوری از  دستورات پاورشل  ابتدا نام دستور وجود دارد که dir هست . سپس آرگومان *.* را داریم و در ادامه سوییچ s/ را داریم . یک مفهوم بسیار مشابهی را درون پاورشل هم داریم ولی ساختار متفاوتی دارد . ولی بهترین بخش آن این است که ساختار دستوری هرگز تغییر نمی‌کند . مهم نیست چه محصولی رو استفاده می‌کنید . چه شیرپوینت باشد یا اکسچینج ساختار کامندلت تغییری نمی‌کند . فقط بایستی ساختار دستوری و سینتکس آن را یاد بگیریم . خوب من این ساختار را با کد جعلی به صورت زیر نمایش می‌دهم :

 

Get-fake -param Arg -param -param arg,arg

بخش اول Get-fake کامندلت ما می‌باشد . در ادامه آن پارامترها param- و آرگومان ها arg می‌آیند . به یاد داشته باشید که پارامترها همیشه با علامت دش – آغاز می‌شوند . پارامترها نحوه عمل‌کرد کامندلت را تنظیم و بهینه می‌کنند . در ادامه پس از پارامتر ممکن است آرگومان بیاید شاید هم نیاید . برخی پارامترها آرگومان ندارند که این پارامترها را پارامترهای سوییچی می نامند و برخی پارامترها ممکن است چندین آرگومان داشته باشند . پس اگر یک پارامتر چند آرگومان داشت این آرگومان ها را با کاما از هم جدا می‌کنیم . این ساختار هرگز در پاورشل تغییر نمی‌کند و همیشه به همین صورت است . حالا این ساختارها را از کجا یاد می‌گیریم ؟ که یک کامندلت چه پارامترها و چه آرگومان هایی دارد ؟ از بخش سینتکس موجود در فایل‌های کمکی . خوب یک مثال واقعی را مشاهده کنیم تا روشن شویم . توجه کنید که چون می‌خواهیم پارامترها و تعریف پارامترها را مشاهده کنیم بایستی از سوییچ Detailed استفاده کنیم :

سینتکس دستورات در پاورشل

بخشی که دربارش صحبت می‌کردیم همین بخش SYNTAX (ساختار دستوری دستورات پاورشل) می‌باشد که در تصویر بالا مشاهده می‌کنید . اول از همه به این تصویر در بخش سینتکس نگاه کنید و ببینید که چند بار کامندلت Get-Service را مشاهده می‌کنید ؟ سه بار درسته ؟ دلیلش چیه ؟ دلیلش آن است که این‌ها سه ست پارامتری مختلف هستند . یعنی اینکه کامندلت Get-Service را به سه شیوه متفاوت می‌توان استفاده کرد . بر این اساس که حداقل یک پارامتر در این سینتکس ها متفاوت هستند . اگر به مورد اول در تصویر بالا نگاه کنید می‌بینید که سوییچ Name- در اولی وجود دارد و در دو ست پارامتری دیگر وجود ندارد . در سینتکس دومی DisplayName یگانه هست . در اولی و سومی وجود ندارد . و سومی InputObject را دارد .

خوب از کجا بفهمیم که یک پارامتر آرگومان می‌گیرد . هرجا این علامت بزرگ‌تر و کوچک‌تر را دیدیم یعنی پارامتر ما یک آرگومان می‌گیرد . سؤال مهم این است که چه نوع آرگومانی می‌گیرد . مثلاً در اینجا نوع آرگومان ما از نوع رشته ای یا همان string هست . این مقدار می‌تواند اینتجر هم باشد .
خوب حالا بگذارید یک مثال از اجرای دستور get-service به همراه گزینه هایش نشان دهم . خوب دستور get-service را اجرا کنید . توجه کنید که در این کامندلت ستونی با نام Name وجود دارد . یادتون می یاد پارامتری با نام name- وجود داشت . این ستون و مواردش اسامی خلاصه برای سرویس ها هستند . من یکی از این اسامی خلاصه را انتخاب می‌کنم و کپی می‌کنم . پس BITS که ما در اینجا انتخاب می‌کنیم یکی از اسامی کوتاه در ستون name‌ هست و پارامتر name- هم به دنبال این‌ها می‌باشد .

سینتکس دستورات در پاورشل

پس به جای اجرا دستور get-service و مشاهده همه سرویس های موجود این بار با استفاده از پارامتر name- فقط سرویس BITS را مشاهده کنیم .

سینتکس دستورات در پاورشل

خوب قابلیت بیشتری از نمایش فقط یک سرویس وجود دارد و از سینتکسی که قبلاً دیدیم مشخص است . خوب اول کامندلت سپس پارامتر name- وجود دارد چرا که دش اول آن آمده . این پارامتر یک آرگومان می‌گیرد چرا که در <> مشخص شده است و از نوع رشته ای است . ولی به علامت [] درون آرگومان از نوع رشته ای دقت کنید <[]string>

سینتکس دستورات در پاورشل
این کروشه ها را می‌بینید ؟ دقت کنید که کروشه های درون علامت بزرگ‌تر و کوچکتر را می‌گوییم . معنی این کروشه ها چیست ؟ یعنی اینکه این پارامتر می‌تواند بیش از یک آرگومان گرفته که آرگومان ها هم با کاما از هم جدا می‌شوند . همه پارامترها نمی‌توانند بیش از یک آرگومان را بگیرند . باید دقت کنید چرا که اگر فقط یک آرگومان گرفته و شما چند آرگومان را وارد کنید با پیام خطا مواجه می‌شوید . پس در اینجا پارامتر name- چند آرگومان می‌گیرد .

خوب حالا ببینیم که در عمل چگونه است . دستور get-service را به صورت زیر وارد می‌کنیم :

سینتکس دستورات در پاورشل

در دستور بالا دو آرگومان را وارد کردیم که این آرگومان ها نام سرویس ها هستند و با یک کاما از هم جدا می‌شوند . با اجرای این کامندلت دو سرویس bfe و bits به ما نشان داده می‌شوند .
خوب هنوز مانده است و این جایی است که می‌تواند کمی گیج‌کننده باشد پس بیشتر دقت کنید .

سینتکس دستورات در پاورشل

اگر به سینتکس در فایل‌های کمکی نگاه کنیم ، یکسری کروشه ها را می‌بینیم پارامترها و آرگومان ها را در بر گرفته‌اند . به یاد دارید که دستور get-service را می توانستیم به تنهایی و بدون هیچ آرگومانی و پارامتری وارد کنیم ؟! چرا ؟ به خاطر همین کروشه ها . این کروشه ها یعنی اینکه تمامی این آرگومان ها و پارامترها اختیاری هستند .

سینتکس دستورات در پاورشل

در ساختار اول دستوری ما هیچ پارامتر یا آرگومانی اجباری نیست . ولی به سینتکس دومی دقت کنید . به پارامتر DisplayName دقت کنید .

سینتکس دستورات در پاورشل

پس من اگر بخواهم از ساختار دستوری دومی استفاده کنم ، بایستی حتماً از این پارامتر DisplayName استفاده کنم و اجباری است . و این شیوه ای است که پارامترهای اجباری را شناسایی می‌کنید . ساختار دستوری دستورات پاورشل را شناختید .

این تنها بخشی از کتاب آموزش کاربردی پاورشل بود . در صورتیکه این آموزش برای شما مفید و کارآمد است می توانید ادامه آن را از اینجا تهیه کنید .

صاحب امتیاز نت آموز : نویسنده , مدرس و متخصص در زمینه امنیت شبکه های رایانه ای

نظرات غیرمرتبط با موضوع این مطلب تایید نخواهند شد. این سوالات را می توانید از بخش پشتیبانی آموزشی مطرح کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *