ورود به سامانه
پروفایل درخواست های من درخواست ها
لوگوی زیر صفحه اصلی
بازگشت
بازگشت
کلمه عبور باید حداقل 6 کاراکتر باشد که شامل عدد، حروف و یک حرف بزرگ انگلیسی باشد
بازگشت
بازگشت

PowerShell چیست؟

نویسنده : سهیل خزاعی | تاریخ انتشار : 1400/10/01 | تعداد بازدید : 20

یک چارچوب اتوماسیون کار و مدیریت پیکربندی از شرکت مایکروسافت است که متشکل از یک پوسته خط فرمان و زبان برنامه نویسی مرتبط است. در ابتدا فقط یک م Windowsلفه ویندوز بود که به Windows PowerShell معروف بود ، با معرفی PowerShell Core در 18 آگوست 2016 با منبع باز و چند پلتفرمی ساخته شد. مورد اول بر روی .NET Framework ساخته شده است ، دومی بر روی .NET Core.

PowerShell چیست؟

در PowerShell ، وظایف اداری معمولاً توسط cmdlets (دستورات  تلفظ شده) انجام می شود که کلاسهای تخصصی دات نت هستند و یک عملیات خاص را  اجرا می کنند. این کارها با دسترسی به داده ها در ذخیره داده های مختلف  مانند سیستم فایل یا رجیستری که از طریق ارائه دهندگان در اختیار  PowerShell قرار می گیرند ، کار می کنند. توسعه دهندگان شخص ثالث می توانند  cmdlet ها و ارائه دهندگان را به PowerShell اضافه کنند. Cmdlet ها ممکن  است توسط اسکریپت ها استفاده شوند ، که ممکن است به نوبه خود در ماژول ها  بسته بندی شوند.

 

PowerShell دسترسی به COM و WMI را فراهم می کند ، به مدیران  اجازه می دهد تا کارهای اداری را روی سیستم های محلی و از راه دور ویندوز و  همچنین WS-Management و CIM برای مدیریت سیستم های از راه دور لینوکس و  دستگاه های شبکه انجام دهند. PowerShell همچنین یک API میزبانی ارائه می  دهد که با استفاده از آن می توان زمان اجرای PowerShell را در برنامه های  دیگر تعبیه کرد. سپس این برنامه ها می توانند از قابلیت PowerShell برای  اجرای برخی عملیات ، از جمله مواردی که از طریق رابط گرافیکی در معرض دید  قرار دارند ، استفاده کنند. این قابلیت توسط Microsoft Exchange Server  2007 مورد استفاده قرار گرفته است تا عملکرد مدیریت آن را به عنوان  PowerShell cmdlets و ارائه دهندگان و پیاده سازی ابزارهای مدیریت گرافیکی  به عنوان میزبان PowerShell که cmdlet های لازم را فراخوانی می کنند ،  استفاده کرده است. سایر برنامه های مایکروسافت از جمله Microsoft SQL  Server 2008 نیز رابط مدیریت خود را از طریق cmdlets PowerShell نشان می  دهند.

 

PowerShell شامل راهنمای گسترده و مبتنی بر کنسول خود (مشابه  صفحات man در پوسته یونیکس) است که از طریق cmdlet دریافت راهنما قابل  دسترسی است. مطالب راهنمای محلی به روز شده را می توان از طریق cmdlet  Update-Help از اینترنت بازیابی کرد. متناوباً ، از طریق سوئیچ -online به  Get-Help می توانید به کمک وب به صورت موردی دسترسی پیدا کنید.

زمینه

هر نسخه از Microsoft Windows برای رایانه های شخصی دارای یک  مفسر خط فرمان (CLI) برای مدیریت سیستم عامل است. سلف آن ، MS-DOS ،  منحصراً به یک CLI متکی بود. اینها عبارتند از COMMAND.COM در MS-DOS و  Windows 9x و cmd.exe در خانواده سیستم عاملهای Windows NT. هر دو از چند  دستور داخلی اساسی پشتیبانی می کنند. برای اهداف دیگر ، یک برنامه کنسول  جداگانه باید نوشته شود. آنها همچنین شامل یک زبان برنامه نویسی اساسی  (پرونده های دسته ای) هستند که می تواند برای خودکار کردن کارهای مختلف  مورد استفاده قرار گیرد. با این حال ، نمی توان از آنها برای اتوماتیک کردن  تمام وجوه عملکرد رابط کاربر گرافیکی (GUI) استفاده کرد ، تا حدی به دلیل  اینکه معادل های خط فرمان عملیات محدود هستند و زبان برنامه نویسی ابتدایی  است. در ویندوز سرور 2003 ، اوضاع بهتر شده است ، اما پشتیبانی از برنامه  نویسی هنوز نامطلوب است.

 

مایکروسافت با معرفی میزبان Windows Script در سال 1998 با  ویندوز 98 و میزبان مبتنی بر خط فرمان آن ، cscript.exe ، سعی در رفع برخی  از این کاستی ها داشت. با موتور Active Script ادغام می شود و اجازه می دهد  اسکریپت ها به زبان های سازگار مانند JScript و VBScript نوشته شوند و از  API های برنامه های کاربردی از طریق مدل اجزای م componentلفه (COM)  استفاده می کنند. با این حال ، این کمبودهای خاص خود را دارد: اسناد آن  بسیار در دسترس نیست و پس از سو after استفاده چندین ویروس رایانه ای  رایانه از نقاط ضعف مقررات امنیتی خود ، به سرعت به عنوان بردار آسیب پذیری  سیستم شهرت یافت. نسخه های مختلف ویندوز مجموعه های فرمان خاص خود را برای  مفسران خط فرمان مختلف (مانند netsh و WMIC) فراهم می کنند اما با یکدیگر  قابل همکاری نیستند.

 

 

موناد

تا سال 2002 ، مایکروسافت شروع به ایجاد رویکرد جدیدی برای  مدیریت خط فرمان کرد ، از جمله CLI به نام Monad (همچنین به نام Microsoft  Shell یا MSH). ایده های موجود در پشت آن در آگوست 2002 در یک کاغذ سفید به  نام "مانیفست موناد" توسط معمار اصلی آن ، جفری اسنور منتشر شد.  اسنور در  مصاحبه ای در سال 2017 ، پیدایش PowerShell را توضیح می دهد و می گوید که  او سعی داشته است ابزارهای یونیکس را در ویندوز در دسترس بگذارد ، که به  دلیل "تفاوت معماری اصلی بین ویندوز و لینوکس" جواب نداد. به طور خاص ، وی  خاطرنشان کرد که لینوکس همه چیز را به عنوان یک فایل متنی ASCII در نظر می  گیرد ، در حالی که ویندوز همه را "API می داند که داده های ساخت یافته را  باز می گرداند". آنها اساساً ناسازگار بودند و همین امر وی را به سمت  رویکرد دیگری سوق داد. 

 

موناد قرار بود یک CLI قابل توسعه جدید با طراحی تازه باشد که  قادر است طیف وسیعی از وظایف اصلی را به طور خودکار انجام دهد. مایکروسافت  برای اولین بار Monad را در کنفرانس توسعه حرفه ای در لس آنجلس در اکتبر  2003 به نمایش گذاشت. چند ماه بعد ، آنها بتا خصوصی را باز کردند که در  نهایت منجر به بتا عمومی شد. مایکروسافت اولین نسخه بتا عمومی Monad را در  17 ژوئن 2005 و Beta 2 در 11 سپتامبر 2005 و Beta 3 در 10 ژانویه 2006  منتشر کرد.

PowerShell

در تاریخ 25 آوریل 2006 ، مدتی نگذشته که اعلامیه اولیه موناد  ، مایکروسافت اعلام کرد که موناد به Windows PowerShell تغییر نام داده  است و آن را به عنوان بخش قابل توجهی از پیشنهادات فناوری مدیریت خود قرار  داده است. نامزد شماره 1 PowerShell در همان زمان آزاد شد. جنبه قابل توجهی  هم در تغییر نام و هم در RC این بود که اکنون این یک جز a از ویندوز است ،  نه یک افزودنی صرف.

 

نامزد 2 نسخه PowerShell نسخه 1 در 26 سپتامبر 2006 منتشر شد ،  و آخرین انتشار آن در وب در 14 نوامبر 2006 بود. PowerShell برای نسخه های  قبلی ویندوز در 30 ژانویه 2007 منتشر شد.  توسعه PowerShell v2.0 قبل از  ارسال PowerShell v1.0 آغاز شد. در طول توسعه ، مایکروسافت سه پیش نمایش  فناوری جامعه (CTP) را ارسال کرد. مایکروسافت این نسخه ها را در دسترس عموم  قرار داد. آخرین نسخه CTP Windows PowerShell v2.0 در دسامبر 2008 در  دسترس قرار گرفت.

 

 

PowerShell برای Linux 6.0 Alpha 9 در اوبونتو 14.04 x64

PowerShell v2.‎0 تکمیل شد و به عنوان بخشی جدایی ناپذیر از  ویندوز 7 و ویندوز سرور 2008 R2 در آگوست 2009 تولید شد. نسخه های  PowerShell برای ویندوز XP ، ویندوز سرور 2003 ، ویندوز ویستا و ویندوز  سرور 2008 در اکتبر 2009 منتشر شد و برای هر دو سیستم عامل 32 بیتی و 64  بیتی برای بارگیری در دسترس است. در شماره اکتبر 2009 مجله TechNet ،  مایکروسافت مهارت در PowerShell را "مهمترین مهارتی که مدیر ویندوز در  سالهای آینده به آن نیاز خواهد داشت" خواند. 

 

ویندوز 10 یک چارچوب آزمایش برای PowerShell ارسال کرد. 

 

در 18 آگوست 2016 ، مایکروسافت اعلام کرد که آنها PowerShell  منبع باز و چند پلتفرمی را با پشتیبانی از ویندوز ، macOS ، CentOS و  اوبونتو ایجاد کرده اند.  کد منبع در GitHub منتشر شد. حرکت به سمت منبع  باز تجسم دوم PowerShell را ایجاد کرد به نام "PowerShell Core" که با هسته  .NET اجرا می شود. این متمایز از "Windows PowerShell" است که به صورت  کامل .NET Framework اجرا می شود. با شروع نسخه 5.1 ، PowerShell Core با  Windows Server 2016 Nano Server همراه است. 

طرح

توسعه دهندگان PowerShell دستور زبان اصلی این ابزار را بر اساس POSIX 1003.2 KornShell بنا نهادند.

 

Windows PowerShell می تواند چهار نوع دستور به نام را اجرا کند: 

 

cmdlets (برنامه های .NET Framework که برای تعامل با PowerShell طراحی شده اند)

اسکریپتهای PowerShell (پرونده هایی که پسوند پسوند آنها پسوند 1 است)

توابع PowerShell

برنامه های اجرایی مستقل

اگر یک دستور یک برنامه اجرایی مستقل است ، PowerShell آن را  در یک فرایند جداگانه راه اندازی می کند. اگر cmdlet باشد ، در فرایند  PowerShell اجرا می شود. PowerShell یک رابط خط فرمان تعاملی را فراهم می  کند ، جایی که می توان دستورات را وارد کرد و خروجی آنها نمایش داده می  شود. رابط کاربر امکان تکمیل برگه های قابل تنظیم را دارد. PowerShell  امکان ایجاد نام های مستعار برای cmdlet ها را فراهم می کند ، که  PowerShell به صورت متنی به فراخوانی دستورات اصلی تبدیل می شود.  PowerShell از پارامترهای تعیین شده و موقعیتی برای دستورات پشتیبانی می  کند. در اجرای cmdlet ، کار اتصال مقدار آرگومان به پارامتر توسط خود  PowerShell انجام می شود ، اما برای اجرایی های خارجی ، آرگومان ها توسط  اجرایی خارجی جدا از تفسیر PowerShell تجزیه می شوند. [نیاز به منبع]

 

سیستم PowerShell Extended Type ‪(ETS)‬ بر اساس سیستم نوع  .NET ساخته شده است ، اما با معنایی گسترده (به عنوان مثال ، ویژگی های خاص  و قابلیت توسعه شخص ثالث). به عنوان مثال ، ایجاد نمای متفاوت از اشیا by  تنها با نشان دادن زیرمجموعه ای از زمینه ها ، خصوصیات و روش های داده و  همچنین تعیین قالب بندی و مرتب سازی سفارشی. این نماها با استفاده از  پرونده های پیکربندی مبتنی بر XML به شی object اصلی ترسیم می شوند. 

 

Cmdlets

Cmdlets دستورات تخصصی در محیط PowerShell هستند که توابع  خاصی را اجرا می کنند. اینها دستورات محلی در پشته PowerShell است. Cmdlets  از الگوی فعل-اسم مانند Get-ChildItem پیروی می کند ، که آن را مستند به  کد می کند.  Cmdlet ها نتایج خود را به صورت اشیا تولید می کنند و همچنین  می توانند اشیا as را به عنوان ورودی دریافت کنند ، و آنها را برای استفاده  به عنوان گیرنده در خط لوله مناسب می کند. اگر cmdlet چندین شی را خارج  کند ، هر شی in موجود در مجموعه قبل از پردازش شی object بعدی از طریق کل  خط لوله منتقل می شود. 

 

Cmdlets کلاسهای تخصصی دات نت هستند که زمان اجرای PowerShell  آنها را نمونه سازی و فراخوانی می کند. Cmdlet ها یا از Cmdlet یا از  PSCmdlet گرفته می شوند ، دومی در مواقعی که cmdlet نیاز به تعامل با زمان  اجرای PowerShell دارد استفاده می شود. [26] این کلاسهای پایه روشهای خاصی  را مشخص می کنند - StartProcessing ()‎، ProcessRecord ()‎ و EndProcessing  ()‎ - که پیاده سازی cmdlet آنها را نادیده می گیرد تا عملکردی را ارائه  دهد. هر زمان که cmdlet اجرا شود ، PowerShell این روشها را به ترتیب  فراخوانی می کند ، درصورتیکه پردازشگر ضبط () ورودی خط لوله را دریافت کند ،  فراخوانی می شود.  اگر مجموعه ای از اشیا pip لوله شده باشد ، روش برای هر  شی in موجود در مجموعه فراخوانی می شود. کلاس پیاده سازی cmdlet باید  دارای یک ویژگی .NET باشد - CmdletAttribute - که فعل و اسمی را که نام  cmdlet را تشکیل می دهند مشخص می کند. افعال معمول به صورت enum ارائه می  شوند. 

 

اگر cmdlet یا ورودی خط لوله یا ورودی پارامتر خط فرمان را  دریافت کند ، باید یک ویژگی مربوطه در کلاس وجود داشته باشد ، با یک اجرای  جهش دهنده. PowerShell جهش دهنده را با مقدار پارامتر یا ورودی خط لوله  فراخوانی می کند ، که با اجرای جهش دهنده در متغیرهای کلاس ذخیره می شود.  سپس این مقادیر با روشهایی که عملکرد را پیاده سازی می کنند ، ارجاع می  شوند. خصوصیاتی که به پارامترهای خط فرمان ترسیم می شوند با  ParameterAttribute مشخص می شوند و قبل از فراخوانی به StartProcessing ()‎  تنظیم می شوند. کسانی که به ورودی خط لوله ترسیم می شوند نیز توسط  ParameterAttribute کنار هم قرار می گیرند ، اما با پارامتر مشخصه  ValueFromPipeline همراه هستند. 

 

اجرای این کلاس های cmdlet می تواند به هر API دات نت اشاره  داشته باشد و ممکن است به هر زبان .NET باشد. علاوه بر این ، PowerShell  برخی از API ها را در دسترس قرار می دهد ، مانند WriteObject ()‎ ، که برای  دسترسی به قابلیت های خاص PowerShell مانند نوشتن اشیا result حاصل در خط  لوله استفاده می شود. Cmdlet ها می توانند به طور مستقیم از API های دسترسی  به داده NET استفاده کنند یا از زیرساخت PowerShell ارائه دهندگان  PowerShell استفاده می کنند که فروشگاه های داده را با استفاده از مسیرهای  منحصر به فرد قابل آدرس دهی می کنند. ذخیره داده ها با استفاده از حروف  درایو ، و سلسله مراتب موجود در آنها ، که به عنوان فهرست راهنمایی می شوند  ، قرار می گیرند. Windows PowerShell با ارائه دهندگان سیستم فایل ،  رجیستری ، ذخیره گواهی ، و همچنین فضاهای نامی برای نام های مستعار ،  متغیرها و توابع ارسال می شود.  Windows PowerShell همچنین شامل cmdlet های  مختلف برای مدیریت سیستم های مختلف ویندوز ، از جمله سیستم فایل ، یا  استفاده از ابزار مدیریت Windows برای کنترل اجزای ویندوز است. برنامه های  دیگر می توانند cmdlet ها را با PowerShell ثبت کنند ، بنابراین به آنها  امکان مدیریت آنها را می دهد و اگر هر دیتاستور (مانند پایگاه داده) را  محصور کنند ، می توانند ارائه دهندگان خاص را نیز اضافه کنند. [نیاز به  منبع]

 

تعداد cmdlet ها به طور کلی با هر نسخه افزایش یافته است:

خط لوله

PowerShell مفهوم خط لوله را پیاده سازی می کند ، لوله ای که  خروجی یک cmdlet را به cmdlet دیگری به عنوان ورودی لوله می کند. به عنوان  مثال ، خروجی cmdlet Get-Process می تواند به Where-Object منتقل شود تا هر  پردازشی که کمتر از 1 مگابایت حافظه صفحه دارد ، و سپس به cmdlet  Sort-Object فیلتر شود (به عنوان مثال ، برای مرتب کردن اشیا by بر اساس  دسته count) ، و سپس سرانجام به cmdlet Select-Object بروید تا فقط ده  فرآیند اول را بر اساس تعداد دسته انتخاب کنید. [نیاز به منبع]

 

همانند خطوط لوله یونیکس ، خطوط لوله PowerShell نیز می  توانند با استفاده از | اپراتور برای اتصال مراحل. با این حال ، خطوط لوله  PowerShell از خطوط لوله Unix متفاوت است زیرا مراحل آن در زمان اجرا  PowerShell انجام می شود تا مجموعه ای از فرآیندهای هماهنگ شده توسط سیستم  عامل. علاوه بر این ، اشیا. .NET ساخت یافته ، به جای جریانهای بایت ، از  یک مرحله به مرحله دیگر منتقل می شوند. استفاده از اشیا و اجرای مراحل در  زمان اجرای PowerShell ، نیازی به سریال سازی ساختارهای داده یا استخراج  آنها با تجزیه صریح خروجی متن را از بین می برد.  یک شی object همچنین می  تواند توابع خاصی را که روی داده های موجود کار می کنند ، محصور کند و این  موارد برای استفاده در دسترس برای گیرنده قرار می گیرند.  برای آخرین  cmdlet در خط لوله ، PowerShell به طور خودکار شی خروجی خود را به cmdlet  Out-Default لوله می کند ، که اشیا را به جریانی از قالب های قالب تبدیل می  کند و سپس آنها را به صفحه نمایش می دهد. 

 

از آنجا که همه اشیا Power PowerShell اشیا. .NET هستند ،  آنها از یک متد .ToString ()‎ استفاده می کنند که نمایش متنی داده ها را در  یک شی بازیابی می کند. علاوه بر این ، PowerShell اجازه می دهد تا تعاریف  قالب بندی مشخص شود ، بنابراین نمایش متن اشیا can را می توان با انتخاب  عناصر داده برای نمایش و به چه روشی سفارشی کرد. با این حال ، برای حفظ  سازگاری به عقب ، اگر از یک اجرایی خارجی در خط لوله استفاده شود ، به جای  اینکه مستقیماً با سیستم نوع PowerShell ادغام شود ، جریان متنی را به  نمایندگی از شی دریافت می کند. 

 

فیلمنامه نویسی

Windows PowerShell شامل یک زبان برنامه نویسی تایپ شده به  صورت پویا است که می تواند عملیات پیچیده را با استفاده از cmdlets ضروری  اجرا کند. زبان برنامه نویسی از متغیرها ، توابع ، انشعابات (اگر غیر از  این باشد) ، حلقه ها (در حالی که ، انجام ، برای و پیشگفتار) ، خطای  ساختاری / مدیریت استثنا و بسته شدن / عبارات lambda ، [45]‎ و همچنین  ادغام با .NET . متغیرها در اسکریپت های PowerShell پیشوند $ دارند. به  متغیرها می توان هر مقداری را اختصاص داد ، از جمله خروجی cmdlet ها. رشته  ها را می توان در نقل قول های منفرد یا در نقل قول های مضاعف محصور کرد:  هنگام استفاده از نقل قول های مضاعف ، متغیرها حتی اگر درون علامت های نقل  قول باشند ، گسترش می یابند. پیوستن مسیر به پرونده در پرانتزهایی که قبل  از آن یک علامت دلار وجود دارد (مانند $ {C: \ foo.txt}) مرجعی به محتوای  پرونده ایجاد می کند. اگر از آن به عنوان مقدار L استفاده شود ، هر چیزی که  به آن اختصاص داده شود در پرونده نوشته می شود. وقتی به عنوان مقدار R  استفاده می شود ، محتوای پرونده خوانده می شود. اگر یک شی اختصاص داده شده  باشد ، قبل از ذخیره سازی سریال می شود. [نیاز به منبع]

 

با استفاده از اعضای شیject قابل دسترسی هستند. علامت گذاری ،  مانند نحو C #. PowerShell متغیرهای خاصی مانند $ args را ارائه می دهد که  آرایه ای از تمام آرگومان های خط فرمان منتقل شده به یک تابع از خط فرمان  است و $ _ که به شی current فعلی در خط لوله اشاره دارد. PowerShell همچنین  آرایه ها و آرایه های انجمنی را ارائه می دهد. زبان برنامه نویسی  PowerShell همچنین عبارات حسابی وارد شده در خط فرمان را بلافاصله ارزیابی  می کند ، و اختصارات رایج مانند GB ، MB و KB را تجزیه می کند. 

 

با استفاده از کلمه کلیدی عملکرد ، PowerShell ایجاد توابع را فراهم می کند. یک عملکرد ساده دارای شکل کلی زیر است


عملکرد تعریف شده در هر یک از اشکال زیر فراخوانی می شود: 

 

نام مقدار 1 مقدار 2

فعل-نام -Param1 مقدار 1 -Param2 مقدار 2

PowerShell اجازه می دهد تا هر روش استاتیک .NET با ارائه  فضاهای نامی محصور در براکت ([]) فراخوانی شود ، و سپس با استفاده از یک  جفت دونقطه (: :) برای نشان دادن روش ثابت. مثلا:

 

[کنسول] :: WriteLine (‪"PowerShell"‬)

ده ها راه برای اشیا در PowerShell وجود دارد. پس از ایجاد ،  می توان به خصوصیات و روش های نمونه یک شی با استفاده از دسترسی پیدا کرد.  نمادگذاری.

 

PowerShell رشته های خام و فرار را می پذیرد. رشته ای که بین  نقل قول های منفرد محصور شده است یک رشته خام است در حالی که یک رشته محصور  بین دو علامت نقل قول یک رشته فرار است. PowerShell نقل قولهای صاف و مجعد  را معادل می داند. 

 

لیست زیر از شخصیت های خاص توسط PowerShell پشتیبانی می شود

برای مدیریت خطا ، PowerShell مکانیزم کنترل استثنا مبتنی بر  NET را فراهم می کند. در صورت بروز خطا ، اشیا containing حاوی اطلاعات  مربوط به خطا (Exception object) پرتاب می شوند که با استفاده از ساختار  try ... catch (که سازه trap نیز پشتیبانی می شود) صید می شوند. PowerShell  را می توان به گونه ای پیکربندی کرد که بدون سکوت در واقع ، اجرای آن را  بی صدا از سر بگیرد. این کار را می توان با تنها یک دستور ، یک جلسه یا  همیشگی انجام داد. 

 

اسکریپت هایی که با استفاده از PowerShell نوشته شده اند می  توانند در جلسات در یک پرونده .ps1 یا یک فایل .psm1 ادامه پیدا کنند (دومی  برای پیاده سازی یک ماژول استفاده می شود). بعداً می توان از کل اسکریپت  یا توابع جداگانه در اسکریپت استفاده کرد. اسکریپت ها و توابع به طور مشابه  با cmdlet ها کار می کنند ، به این معنی که می توانند به عنوان دستورات در  خطوط لوله استفاده شوند و پارامترها به آنها متصل می شوند. اشیاip خط لوله  را می توان بین توابع ، اسکریپت ها و cmdlet ها به صورت یکپارچه عبور داد.  برای جلوگیری از اجرای ناخواسته اسکریپت ها ، اجرای اسکریپت به طور پیش  فرض غیرفعال است و باید صریحاً فعال شود.  فعال کردن اسکریپت ها می تواند  در سطح سیستم ، کاربر یا جلسه باشد. اسکریپتهای PowerShell برای تأیید صحت  آنها امضا می شوند و مشمول امنیت دسترسی کد هستند. 

 

زبان برنامه نویسی PowerShell از علامت پیشوند باینری مشابه  علامت علمی پشتیبانی شده توسط بسیاری از زبان های برنامه نویسی در خانواده C  پشتیبانی می کند.

 

میزبانی

همچنین می توان از PowerShell تعبیه شده در یک برنامه مدیریتی  استفاده کرد ، که از زمان اجرا PowerShell برای پیاده سازی عملکرد مدیریت  استفاده می کند. برای این منظور ، PowerShell یک API میزبانی مدیریت شده  ارائه می دهد. از طریق رابط های برنامه کاربردی (API) ، برنامه می تواند  فضای فضایی (یک نمونه از زمان اجرای PowerShell) را نمونه سازی کند ، که در  روند برنامه اجرا می شود و به عنوان یک جسم Runspace در معرض دید قرار می  گیرد. حالت فضای فضایی در یک شی SessionState محصور شده است. هنگام ایجاد  فضای خالی ، زمان اجرای Windows PowerShell نمونه سازی را از جمله مقداردهی  اولیه ارائه دهندگان و برشمردن cmdlet ها آغاز می کند و متناسب با آن شی  SessionState را به روز می کند. سپس Runspace باید برای پردازش همزمان یا  پردازش ناهمگام باز شود. پس از آن می توان از آن برای اجرای دستورات  استفاده کرد. [نیاز به منبع]

 

برای اجرای یک دستور ، یک خط لوله (نشان داده شده توسط یک شی  Pipeline) باید ایجاد شود و با فضای اجرا مرتبط باشد. سپس شی pip خط لوله  با cmdlet های تشکیل دهنده خط لوله پر می شود. برای عملیات ترتیبی (مانند  اسکریپت PowerShell) ، یک شی Pipeline برای هر عبارت ایجاد می شود و درون  یک شی Pipeline دیگر قرار می گیرد. [6] هنگامی که خط لوله ایجاد می شود ،  Windows PowerShell پردازنده خط لوله را فراخوانی می کند ، که cmdlet ها را  در مجامع مربوطه حل می کند (پردازشگر فرمان) و مرجعی را به آنها اضافه می  کند و آنها را با اشیا In InputPipe ، OutputPipe و ErrorOutputPipe مرتبط  می کند ، اتصال با خط لوله. انواع با استفاده از بازتاب تأیید و پارامترها  محدود می شوند.  پس از راه اندازی خط لوله ، میزبان برای اجرای دستورات یا  معادل ناهمزمان آن ، InvokeAsync ()‎ ، روش Invoke ()‎ را فراخوانی می کند.  اگر خط لوله cmdlet نوشتار-میزبان را در انتهای خط لوله داشته باشد ،  نتیجه را روی صفحه کنسول می نویسد. در غیر این صورت ، نتایج به میزبان  تحویل داده می شود ، که ممکن است یا پردازش بیشتری را اعمال کند یا خود  خروجی را نمایش دهد. [نیاز به منبع]

 

Microsoft Exchange Server 2007 از API های میزبانی برای تهیه  رابط کاربری گرافیکی مدیریتی خود استفاده می کند. هر عملیاتی که در رابط  کاربری گرافیکی قرار می گیرد به دنباله ای از دستورات PowerShell (یا خطوط  لوله) ترسیم می شود. میزبان خط لوله را ایجاد کرده و آنها را اجرا می کند.  در واقع ، کنسول PowerShell تعاملی خود یک میزبان PowerShell است ، که  اسکریپت های وارد شده در خط فرمان را تفسیر می کند و اشیا P لازم Pipeline  را ایجاد می کند و آنها را فراخوانی می کند. [نیازمند منبع]

میزبانی

همچنین می توان از PowerShell تعبیه شده در یک برنامه مدیریتی  استفاده کرد ، که از زمان اجرا PowerShell برای پیاده سازی عملکرد مدیریت  استفاده می کند. برای این منظور ، PowerShell یک API میزبانی مدیریت شده  ارائه می دهد. از طریق رابط های برنامه کاربردی (API) ، برنامه می تواند  فضای فضایی (یک نمونه از زمان اجرای PowerShell) را نمونه سازی کند ، که در  روند برنامه اجرا می شود و به عنوان یک جسم Runspace در معرض دید قرار می  گیرد. [6] حالت فضای فضایی در یک شی SessionState محصور شده است. هنگام  ایجاد فضای خالی ، زمان اجرای Windows PowerShell نمونه سازی را از جمله  مقداردهی اولیه ارائه دهندگان و برشمردن cmdlet ها آغاز می کند و متناسب با  آن شی SessionState را به روز می کند. سپس Runspace باید برای پردازش  همزمان یا پردازش ناهمگام باز شود. پس از آن می توان از آن برای اجرای  دستورات استفاده کرد. [نیاز به منبع]

 

برای اجرای یک دستور ، یک خط لوله (نشان داده شده توسط یک شی  Pipeline) باید ایجاد شود و با فضای اجرا مرتبط باشد. سپس شی pip خط لوله  با cmdlet های تشکیل دهنده خط لوله پر می شود. برای عملیات ترتیبی (مانند  اسکریپت PowerShell) ، یک شی Pipeline برای هر عبارت ایجاد می شود و درون  یک شی Pipeline دیگر قرار می گیرد. [6] هنگامی که خط لوله ایجاد می شود ،  Windows PowerShell پردازنده خط لوله را فراخوانی می کند ، که cmdlet ها را  در مجامع مربوطه حل می کند (پردازشگر فرمان) و مرجعی را به آنها اضافه می  کند و آنها را با اشیا In InputPipe ، OutputPipe و ErrorOutputPipe مرتبط  می کند ، اتصال با خط لوله. انواع با استفاده از بازتاب تأیید و پارامترها  محدود می شوند.  پس از راه اندازی خط لوله ، میزبان برای اجرای دستورات یا  معادل ناهمزمان آن ، InvokeAsync ()‎ ، روش Invoke ()‎ را فراخوانی می کند.  اگر خط لوله cmdlet نوشتار-میزبان را در انتهای خط لوله داشته باشد ،  نتیجه را روی صفحه کنسول می نویسد. در غیر این صورت ، نتایج به میزبان  تحویل داده می شود ، که ممکن است یا پردازش بیشتری را اعمال کند یا خود  خروجی را نمایش دهد. [نیاز به منبع]

 

Microsoft Exchange Server 2007 از API های میزبانی برای تهیه  رابط کاربری گرافیکی مدیریتی خود استفاده می کند. هر عملیاتی که در رابط  کاربری گرافیکی قرار می گیرد به دنباله ای از دستورات PowerShell (یا خطوط  لوله) ترسیم می شود. میزبان خط لوله را ایجاد کرده و آنها را اجرا می کند.  در واقع ، کنسول PowerShell تعاملی خود یک میزبان PowerShell است ، که  اسکریپت های وارد شده در خط فرمان را تفسیر می کند و اشیا P لازم Pipeline  را ایجاد می کند و آنها را فراخوانی می کند. [نیازمند منبع]

 

پیکربندی حالت دلخواه

DSC اجازه می دهد تا بصورت آشکار نحوه تنظیم یک محیط نرم افزار را تعیین کند.

 

با اجرای یک پیکربندی ، DSC اطمینان حاصل می کند که سیستم  وضعیت توصیف شده در پیکربندی را بدست می آورد. پیکربندی های DSC کم کار  هستند. مدیر محلی پیکربندی (LCM) برای اطمینان از حفظ وضعیت پیکربندی ، به  طور دوره ای سیستم را با استفاده از جریان کنترل توصیف شده توسط منابع  (قطعات ضروری DSC) نظرسنجی می کند.

 

نسخه ها

در ابتدا با استفاده از نام رمز "Monad‏" ، PowerShell برای  اولین بار در کنفرانس توسعه دهندگان حرفه ای در اکتبر 2003 در لس آنجلس به  نمایش عمومی درآمد. همه نسخه های اصلی هنوز پشتیبانی می شوند و هر نسخه  اصلی سازگاری معکوس با نسخه های قبلی را دارد.

 

Windows PowerShell 1.‎0

PowerShell 1.‎0 در نوامبر 2006 برای Windows XP SP2 ،  Windows Server 2003 SP1 و Windows Vista منتشر شد. [58] این یک جز option  اختیاری ویندوز سرور 2008 است.

 

Windows PowerShell 2.‎0

PowerShell 2.‎0 با ویندوز 7 و ویندوز سرور 2008 R2  ادغام  شده و برای ویندوز XP با سرویس پک 3 ، ویندوز سرور 2003 با سرویس پک 2 و  ویندوز ویستا با سرویس پک 1 منتشر می شود. 

 

PowerShell v2 علاوه بر اینکه شامل بیش از 240 cmdlet جدید است ، شامل تغییراتی در زبان برنامه نویسی و API میزبان است. 

 

ویژگی های جدید PowerShell 2.0 شامل موارد زیر است: 

 

کنترل از راه دور PowerShell: با استفاده از WS-Management ،  PowerShell 2.0 اجازه می دهد اسکریپت ها و cmdlet ها را در یک ماشین از راه  دور یا مجموعه بزرگی از ماشین های از راه دور فراخوانی کنید.

مشاغل پیشینه: PSJob نیز نامیده می شود ، این امکان را می دهد  که توالی فرمان (اسکریپت) یا خط لوله به طور غیر همزمان بخوانید. مشاغل را  می توان روی ماشین محلی یا چندین ماشین از راه دور اجرا کرد. cmdlet  تعاملی در PSJob تا زمانی که ورودی کاربر تأمین نشود ، اجرای کار را مسدود  می کند.

تراکنش ها: cmdlet را فعال کنید و توسعه دهندگان می توانند  عملیات معاملاتی را انجام دهند. PowerShell 2.0 شامل cmdlet های معامله  برای شروع ، تعهد و برگرداندن معامله PST و همچنین ویژگی هایی برای مدیریت و  هدایت معامله به cmdlet شرکت کننده و عملیات ارائه دهنده است. ارائه دهنده  PowerShell Registry از تراکنش ها پشتیبانی می کند.

توابع پیشرفته: این cmdlet ها هستند که با استفاده از زبان  برنامه نویسی PowerShell نوشته شده اند. این ویژگی که ابتدا "cmdlets  اسکریپت" نامیده می شد ، بعداً به "توابع پیشرفته" تغییر نام داد. [67]

SteppablePipelines:‎ این به کاربر اجازه می دهد تا زمان  فراخوانی عملکردهای Start (پردازش) () ، ProcessRecord ()‎ و EndProcessing  ()‎ cmdlet را کنترل کند.

Modules:‎ این به توسعه دهندگان و مدیران اسکریپت اجازه می  دهد تا اسکریپتهای PowerShell را در واحدهای خودکار و قابل استفاده مجدد  سازماندهی و تقسیم بندی کنند. کد از یک ماژول در متن خود مختصر اجرا می شود  و بر وضعیت خارج از ماژول تأثیر نمی گذارد. ماژول ها می توانند با استفاده  از یک اسکریپت یک فضای محدود فضای اجرا تعریف کنند. آنها دارای یک کشور  پایدار و همچنین اعضای عمومی و خصوصی هستند.

زبان داده: زیرمجموعه دامنه خاص از زبان برنامه نویسی  PowerShell که اجازه می دهد تعاریف داده ها از اسکریپت ها جدا شوند و به  شما اجازه می دهد منابع رشته محلی شده در زمان اجرا (اسکریپت بین المللی)  به اسکریپت وارد شوند.

اشکال زدایی اسکریپت: به شما اجازه می دهد تا نقاط شکست در یک  اسکریپت یا عملکرد PowerShell تنظیم شوند. نقاط شکست را می توان روی خطوط ،  ستون ها ، ستون ها ، دستورات و دسترسی خواندن یا نوشتن متغیرها تنظیم کرد.  این مجموعه شامل cmdlet ها برای کنترل نقاط شکست از طریق اسکریپت است.

Eventing:‎ این ویژگی به شما امکان گوش دادن ، هدایت و عمل در  زمینه مدیریت و رویدادهای سیستم را می دهد. رویداد به میزبانان PowerShell  اجازه می دهد تا از تغییرات وضعیت موجودیت های مدیریت شده خود مطلع شوند.  همچنین اسکریپت های PowerShell را قادر می سازد تا در ObjectEvents ،  PSEvents و WmiEvents مشترک شوند و آنها را به صورت همزمان و غیر همزمان  پردازش کنند.

Windows PowerShell Environment Scripting Environment  (ISE):‎ PowerShell 2.‎0 شامل یک میزبان PowerShell مبتنی بر GUI است که  اشکال زدایی یکپارچه ، برجسته سازی نحوی ، تکمیل برگه و حداکثر 8 کنسول  PowerShell Unicode ‪(Runspaces)‬ رابط کاربر دارای تب و همچنین قابلیت را  فراهم می کند. فقط قسمتهای انتخاب شده را در یک اسکریپت اجرا کنید.

انتقال پرونده شبکه: پشتیبانی بومی برای انتقال اولویت بندی  شده ، مضراب و ناهمزمان پرونده ها بین دستگاه ها با استفاده از سرویس  انتقال هوشمند زمینه (BITS).

cmdlets جدید: از جمله Out-GridView ، که داده های جدولی را  در جسم WPF GridView روی سیستم هایی که اجازه آن را می دهند و در صورت نصب و  فعال بودن ISE نمایش می دهد.

اپراتورهای جدید: اپراتورهای -Split ، -Join ، و Splatting (@)‎.

مدیریت استثنایی با Try-Catch-نهایتا: برخلاف سایر زبانهای .NET ، این امکان برای چندین بلاک را فراهم می کند.

رشته های Nestable: رشته های PowerShell اینجا بهبود یافته و اکنون می توانند لانه سازی کنند. 

نظرات را مسدود کنید: PowerShell 2.0 از نظرات بلوک با استفاده از <# و #> به عنوان جداکننده پشتیبانی می کند. 

API های جدید: API های جدید از انتقال کنترل بیشتر بر تجزیه  کننده PowerShell و زمان اجرا به میزبان ، ایجاد و مدیریت مجموعه ای از  Runspaces ‪(RunspacePools)‬ و همچنین توانایی ایجاد محدودیت Runspaces که  فقط به یک زیر مجموعه پیکربندی شده PowerShell اجازه می دهد. استناد کرد  API های جدید همچنین از مشارکت در معامله ای که توسط PowerShell مدیریت می  شود پشتیبانی می کنند

Windows PowerShell 3.‎0

PowerShell 3.‎0 با ویندوز 8 و ویندوز سرور 2012 یکپارچه شده  است. مایکروسافت همچنین PowerShell 3.0 را برای ویندوز 7 با Service Pack 1  ، برای Windows Server 2008 با Service Pack 1 و برای Windows Server 2008  R2 با Service Pack 1 در دسترس قرار داده است.

 

PowerShell 3.‎0 بخشی از یک بسته بزرگتر است ، Windows  Management Framework 3.0 ‪(WMF3)‬ ، که همچنین شامل سرویس WinRM برای  پشتیبانی از راه دور است.  مایکروسافت چندین نسخه پیش نمایش Community  Technology از WMF3 منتشر کرد. نسخه اولیه پیش نمایش فناوری 2 جامعه (CTP  2‏) Windows Management Framework 3.0 در 2 دسامبر 2011 منتشر شد.  Windows  Management Framework 3.0 در دسامبر 2012 برای دسترسی عمومی منتشر شد [74]  و به طور پیش فرض در ویندوز 8 و ویندوز سرور 2012 وجود دارد. 

 

از ویژگی های جدید PowerShell 3.0 می توان به موارد زیر اشاره کرد: 

 

مشاغل برنامه ریزی شده: با استفاده از زیرساخت Windows Task  Scheduler می توان مشاغل را در یک زمان و تاریخ از پیش تعیین شده اجرا کرد.

اتصال جلسه: جلسات را می توان قطع و وصل کرد. جلسات از راه دور تحمل بیشتری نسبت به خرابی موقتی شبکه دارند.

نوشتن کد بهبود یافته: تکمیل کد (IntelliSense) و قطعه های  اضافه شده. PowerShell ISE به کاربران اجازه می دهد تا از جعبه های گفتگوی  پر کردن پارامترهای cmdlet های PowerShell استفاده کنند.

پشتیبانی نمایندگی: بدون اعطای مجوزهای اضافی دائمی ، می توان  کارهای اداری را به کاربرانی که برای آن نوع کارها مجوز ندارند ، تفویض  کرد.

به روزرسانی راهنما: اسناد راهنما را می توان از طریق دستور Update-Help به روز کرد.

تشخیص خودکار ماژول: هر وقت فرمانی از آن ماژول فراخوانی شود ،  ماژول ها به طور ضمنی بارگیری می شوند. تکمیل کد برای ماژول های تخلیه نیز  کار می کند.

دستورات جدید: ده ها ماژول جدید اضافه شده است ، از جمله  قابلیت مدیریت دیسک های get-WmiObject win32_logicaldisk ، میزان صدا ،  فایروال ها ، اتصالات شبکه و چاپگرها ، که قبلاً از طریق WMI انجام شده  بودند. [توضیح بیشتر لازم است]

Windows PowerShell 4.‎0

PowerShell 4.‎0 با ویندوز 8.1 و ویندوز سرور 2012 R2 یکپارچه  شده است. مایکروسافت همچنین PowerShell 4.0 را برای Windows 7 SP1 ،  Windows Server 2008 R2 SP1 و Windows Server 2012 در دسترس قرار داده  است. 

 

ویژگی های جدید PowerShell 4.0 شامل موارد زیر است:

 

پیکربندی حالت دلخواه:  افزونه ها و ابزارهای زبان اعلامی که  امکان استفاده و مدیریت داده های پیکربندی را برای سیستم ها با استفاده از  استانداردهای مدیریت DMTF و پروتکل مدیریت WS فراهم می کنند.

خط مشی اجرای پیش فرض جدید: در سرورهای ویندوز ، سیاست اجرای پیش فرض اکنون RemoteSigned است.

ذخیره-راهنما: اکنون می توان راهنما را برای ماژول هایی که روی رایانه های راه دور نصب شده اند ذخیره کرد.

اشکال زدایی پیشرفته: اشکال زدایی اکنون از گردش کار اشکال  زدایی ، اجرای اسکریپت از راه دور و حفظ جلسات رفع اشکال در اتصال مجدد  جلسه PowerShell پشتیبانی می کند.

PipelineVariable switch:‎ یک پارامتر فراگیر جدید برای نمایش شی object خط لوله فعلی به عنوان یک متغیر برای اهداف برنامه نویسی

تشخیص شبکه برای مدیریت سوئیچ های شبکه مجازی فیزیکی و Hyper-V

 متد Where و ForEach روش جایگزینی برای فیلتر کردن و تکرار روی اشیا فراهم می کند.

تا این حد بسنده میکنیم که بعد از این به Windows PowerShell 5.0 و ویژگیهای آن پرداخته می شود.

لوگوی anamad

آدرس:

مشهد، خیابان امام خمینی، خیابان شهید تولایی، اداره کل پست استان خراسان رضوی، طبقه چهارم، پارک فاوا

تلفن : 38786624-051

رایانامه : anamad400[at]gmail[dot]com

logo-samandehi
{"type":"marker","location":[36.27765738393954,59.59560781717301],"zoom":18}

تمام حقوق مادی و معنوی این سامانه متعلق به تیم امنیتی ای نماد می باشد.

ایجاد حساب