اسکریپت های جاوا اسکریپت چیست و چگونه می توان پشتیبانی از آنها را در مرورگر فعال کرد؟ فایل - سیاست اجرای اسکریپت powershell اجرای اسکریپت powershell را فعال کنید

اجرای پیش فرض اسکریپت Windows PowerShellدر سیستم ممنوع است به دلایل امنیتی، تمام اسکریپت های PowerShell باید به صورت دیجیتالی امضا شوند، این روشبه نام - سیاست اجرا. اگر اسکریپت این شرایط را نداشته باشد، اجرای اسکریپت های PowerShell در سیستم ممنوع است. این در درجه اول به دلیل این واقعیت است که اسکریپت ممکن است حاوی کد مخربی باشد که می تواند آسیب برساند سیستم عامل.


PowerShell چندین حالت اجرایی دارد که تعیین می کند چه نوع کدی مجاز است اجرا شود. 5 حالت مختلف اجرا وجود دارد:

محصور
مقدار پیش فرض. اجرای هر اسکریپت مسدود شده و کار دستورات تعاملی مجاز است.
همه امضا شده (همه امضا شده)
اجرای اسکریپت با امضای دیجیتال مجاز است.
امضا از راه دور
اسکریپت های محلی بدون امضا کار می کنند. همه اسکریپت های دانلود شده باید امضای دیجیتالی داشته باشند.
بدون محدودیت
اجرای هر اسکریپت مجاز است. هنگام اجرای یک اسکریپت بدون امضا که از اینترنت دانلود شده است، ممکن است برنامه نیاز به تأیید داشته باشد.
میان بر
هیچ چیز مسدود نیست، هیچ هشدار یا درخواستی ظاهر نمی شود.

حالت پیش فرض برای PowerShell است "محدود". در این حالت، PowerShell به عنوان یک پوسته تعاملی عمل می کند. اگر قبلاً PowerShell را پیکربندی نکرده‌اید، به‌جای اجرای اسکریپت، پیام خطایی را می‌بینید که با فونت قرمز مانند تصویر زیر نوشته شده است.

توسط بیشترین به روشی مطمئنراه حل این مشکل این است که سیاست اجرا را به نامحدود تغییر دهید، اسکریپت را اجرا کنید و سپس به سیاست محدود برگردید.

برای تغییر سیاست اجرا به نامحدود، از کنسول PowerShell با حقوق Administrator استفاده کنید و دستور زیر را اجرا کنید:

Y (آره)

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

پس از اجرای دستور، از شما خواسته می شود تا تغییر سیاست اجرا را تایید کنید. پاسخ خواهیم داد Y (آره)

اجرای هر اسکریپت مسدود شده است. مقدار پیش فرض.

Set-ExecutionPolicy محدود شده است

اجرای اسکریپت با امضای دیجیتال مجاز است.

اسکریپت های آماده شده در کامپیوتر محلی، می تواند بدون محدودیت اجرا شود، اسکریپت های دانلود شده از اینترنت - فقط با امضای دیجیتال.

Set-ExecutionPolicy RemoteSigned

اجرای هر اسکریپت مجاز است. هنگام اجرای یک اسکریپت بدون امضا که از اینترنت دانلود شده است، ممکن است برنامه نیاز به تأیید داشته باشد.

Set-ExecutionPolicy نامحدود

هیچ چیز مسدود نیست، هیچ هشدار یا درخواستی ظاهر نمی شود.

برای اجرای دستورات فوق بدون تایید تغییر، از پارامتر استفاده کنید
-Force، برای مثال دستور را اجرا کنید:

Set-ExecutionPolicy Bypass -Force

حال در هنگام اجرای دستورات نیازی به تایید تغییرات انجام شده نیست.


اطلاعات موجود در این صفحه در درجه اول برای کاربران مایکروسافت در نظر گرفته شده است اینترنت اکسپلورر 5.x و 6.x.- رایج ترین مرورگرها در شبکه های اینترنتی. مهم است که توجه داشته باشید که سایت ما به اندازه کافی در مرورگرهای دیگر نمایش داده می شود. با این حال، به نظر ما، طرفداران موزیلا فایرفاکسو Opera علاقه مندان و خبره های پیشرفته هستند نرم افزار، و بنابراین برای تنظیم آن نیازی به مشاوره ندارید.

جاوا اسکریپتاین یک زبان برنامه نویسی است که به شما امکان می دهد یک صفحه وب را تعاملی کنید، به عنوان مثال. "توانایی برقراری ارتباط" با کاربر.

اسکریپت های جاوا اسکریپتاز سایت اینترنتی روی کامپیوتر کاربر دانلود و بر روی آن اجرا می شوند. این واقعیت یک تهدید بالقوه برای کامپیوتر کاربر ایجاد می کند!مانند هر فایل دیگری که از یک سایت ناآشنا دانلود می شود، یک اسکریپت جاوا اسکریپت می تواند حاوی کدهای اجرایی باشد که می تواند به کاربر آسیب برساند - برای مثال، دسترسی غیرمجاز به اطلاعات محرمانه او را باز کند. به همین دلیل است که مرورگرها امکان غیرفعال کردن اجرای اسکریپت های جاوا اسکریپت را فراهم می کنند.

متاسفانه هیچ کدام مرورگرهای مدرنبه شما اجازه نمی دهد که به طور انتخابی (مانند مورد کوکی ها) اجازه دهید جاوا اسکریپت فقط از سایت های خاصی دانلود شود، و آن را برای دیگران ممنوع می کند. شما باید بپذیرید که برای اینکه اسکریپت های جاوا اسکریپت کار کنند، تنظیم "اجرای اسکریپت های برنامه جاوا" باید برای همه سایت های موجود در اینترنت فعال باشد.

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

پیکربندی تنظیمات امنیتی جاوا اسکریپت در Microsoft Internet Explorer 6.x

پیکربندی تنظیمات امنیتی جاوا اسکریپت در Microsoft Internet Explorer 5.x



PowerShell می گوید "اجرای اسکریپت در این سیستم غیرفعال است". (پانزده)

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

Management_Install.ps1 نمی تواند بارگیری شود زیرا اجرای اسکریپت در این سیستم غیرفعال است.

من set-executionpolicy را بدون محدودیت انجام دادم و وقتی get-executionpolicy را از PowerShell اجرا می‌کنم یک پاسخ نامحدود دریافت می‌کنم.

// از Powershell خارج شوید

PS C:\Users\Administrator>get-executionpolicy

نامحدود

// از DOS خارج شوید

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scr

ips>powershell. \Management_Install.ps1 1

اخطار: در حال اجرا x86 PowerShell...

فایل C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1 قابل بارگیری نیست زیرا اجرای اسکریپت در این سیستم غیرفعال است. برای جزئیات بیشتر به "دریافت کمک about_signing" مراجعه کنید.

در هر خط: 1 کاراکتر: 25

    . \Management_Install.ps1<<<< 1

    • CategoryInfo: NotSpecified: (:) , PSSecurityException

      FullyQualifiedErrorId: RuntimeException

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts>مکث

کلیدی را برای ادامه فشار دهید. ،

سیستم ویندوز سرور 2008 R2 است.

من چه غلطی می کنم؟

  1. PowerShell را به عنوان مدیر باز کنید و اجرا کنید
  2. فراهم کند RemoteSignedو Enter را فشار دهید.
  3. اجرا کن Set-ExecutionPolicy -Scope CurrentUser
  4. فراهم کند مقدار نامحدودو Enter را فشار دهید.

RemoteSigned: همه اسکریپت هایی که ایجاد می کنید اجرا می شوند و همه اسکریپت های دانلود شده از اینترنت باید توسط یک ناشر مورد اعتماد امضا شوند.

خوب، سیاست را با تایپ کردن ساده تغییر دهید:

Set-ExecutionPolicy RemoteSigned

در PowerShell 2.0، سیاست اجرا به طور پیش فرض غیرفعال بود.

از آن زمان، تیم PowerShell پیشرفت‌های زیادی انجام داده است و مطمئن هستند که کاربران هنگام اجرای اسکریپت‌ها دچار اختلال زیادی نخواهند شد. بنابراین، با شروع با PowerShell 4.0، به طور پیش فرض فعال است.

در مورد شما، Set-ExecutionPolicy RemoteSigned را از کنسول PowerShell تایپ کنید و بله را بگویید.

به منوی شروع بروید و "Windows PowerShell ISE" را جستجو کنید.

بر روی نسخه x86 کلیک راست کرده و "Run as administrator" را انتخاب کنید.

در بالا، Set-ExecutionPolicy RemoteSigned را وارد کنید. اسکریپت را اجرا کنید بله را انتخاب کنید.

این مراحل را برای PowerShell ISE 64 بیتی (نسخه غیر x86) تکرار کنید.

من فقط مراحلی را که @Chad Miller به آنها اشاره کرد را روشن می کنم. ممنون چاد!

می‌توانید با اضافه کردن -ExecutionPolicy ByPass هنگام راه‌اندازی PowerShell، این خط‌مشی را دور بزنید.

Powershell -ExecutionPolicy ByPass -File script.ps1

همچنین می توانید با استفاده از دستور زیر این مورد را حل کنید:

PS > powershell Get-Content .\test.ps1 | فراخوانی-بیان

اگر در محیطی هستید که مدیر نیستید، می‌توانید یک سیاست اجرایی برای آن تنظیم کنید و نیازی به مدیر نخواهد داشت.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

Help Get-ExecutionPolicy -Full Help Set-ExecutionPolicy -Full

با دستور زیر می توانیم وضعیت ExecutionPolicy فعلی را بدست آوریم:

Get-ExecutionPolicy;

به طور پیش فرض آن را محدود. برای اجازه دادن به اجرای اسکریپت های PowerShell، باید این ExecutionPolicy را به صورت زیر تنظیم کنیم انحرافیا بدون محدودیت های .

با استفاده از هر یک از دستورات PowerShell زیر می‌توانیم خط‌مشی را برای کاربر فعلی به‌عنوان Bypass یا Unrestricted تنظیم کنیم:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force; Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force;

نامحدودسیاست تمام فایل های پیکربندی را بارگیری می کند و همه اسکریپت ها را اجرا می کند. اگر یک اسکریپت بدون امضا را اجرا می کنید که از اینترنت دانلود شده است، قبل از اجرای آن از شما درخواست مجوز می شود.

با توجه به اینکه در سیاست میان برهیچ چیز مسدود نیست و هیچ هشدار یا درخواستی در طول اجرای اسکریپت وجود ندارد. دور زدن ExecutionPolicy راحت تر از Unrestricted است.

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

یک پنجره PowerShell را به عنوان باز کنید مدیر. این کار خواهد کرد.

به کلید رجیستری HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell بروید و ExecutionPolicy را روی RemoteSigned تنظیم کنید.

من مشکل مشابهی داشتم و متوجه شدم که cmd پیش فرض ویندوز سرور 2012 x64 اجرا می شود.

برای ویندوز 7 , ویندوز 8 , ویندوز سرور 2008 R2یا ویندوز سرور 2012دستورات زیر را به صورت اجرا کنید مدیر :

x86(32 بیت)
C:\Windows\SysWOW64\cmd.exe را باز کنید

x64(64 بیت)
C:\Windows\system32\cmd.exe را باز کنید
دستور powershell Set-ExecutionPolicy RemoteSigned را اجرا کنید

می توانید با استفاده از حالت آن را بررسی کنید

  • در CMD: اکو %PROCESSOR_ARCHITECTURE%
  • در Powershell: :: Is64BitProcess

من استفاده می کنم ویندوز 10و قادر به اجرای هیچ دستوری نبود. تنها دستوری که به من سرنخ هایی داد این بود:

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

Set-ExecutionPolicy: Windows PowerShell با موفقیت خط‌مشی اجرای شما را به‌روزرسانی کرد، اما این تنظیم توسط یک خط‌مشی تعریف‌شده در یک محدوده خاص‌تر لغو می‌شود. به دلیل لغو، پوسته شما سیاست اجرایی موثر فعلی را حفظ خواهد کرد...

بنابراین راه دیگری پیدا کردم راه حل):

  1. باز کردن دستور اجرا/کنسول (Win+R)
  2. نوعی از: gpedit.msc(ویرایشگر خط مشی گروه)
  3. چشم انداز سیاست های کامپیوتر محلی -> پیکربندی کامپیوتر -> قالب اداری -> اجزای ویندوز -> پاورشل ویندوز .
  4. روشن کن " اجرای اسکریپت را فعال کنید »
  5. سیاست را در صورت نیاز نصب کنید. من برام نصب کردم" اجازه دادن به همه اسکریپت ها ».

حالا PowerShell را باز کنید و لذت ببرید ;)

Win + R را وارد کرده و دستور copy paste را وارد کرده و OK کنید:

Powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

و اسکریپت خود را اجرا کنید.

سپس تغییرات را برگردانید، مانند:

Powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned"

مقدار کمی وجود دارد راه های مختلفاجرای اسکریپت، در زیر موارد اصلی آورده شده است:

  1. یک پوسته PowerShell را راه اندازی کنیدو اسکریپت را در آن اجرا کنید (مسیر فایل و نام فایل را مثلاً به این صورت وارد کنید: C:\Scripts\test.ps1 یا با دستور cd C:\Scripts به پوشه اسکریپت بروید و آن را اجرا کنید. با دستور.\test.ps1) پوسته را می توان به روش های مختلفی پیدا و پرتاب کرد. یکی از راه ها از طریق منوی استارت است. برای ویندوز 7 - باید به "همه برنامه ها" - "لوازم جانبی" - "Windows PowerShell" بروید و پوسته "Windows PowerShell" را راه اندازی کنید. برای ویندوز 10 - باید گروه را با حرف "W" پیدا کنید و در آن "Windows PowerShell" را پیدا کنید.
  2. "Windows PowerShell ISE" را اجرا کنید- این یک برنامه است - یک محیط توسعه که به شما امکان می دهد اسکریپت های PowerShell را ویرایش و اشکال زدایی کنید، که به طور پیش فرض همراه با خود PowerShell نیز وجود دارد. پس از راه اندازی آن، فقط باید روی دکمه "Open" کلیک کنید یا به منوی File بروید - باز کنید و اسکریپت مورد نظر را انتخاب کنید، سپس دکمه F5 یا "Run Script" را فشار دهید. می توانید Windows PowerShell ISE را در همان مکان پیدا کنید. پوسته PowerShell - در منوی Start.
  3. خط فرمان استاندارد را اجرا کنیدو در آن بنویسید:
    فایل powershell<имя_скрипта> (مثال: powershell -file myscript.ps1)

اگر قبلاً اسکریپت های PowerShell را اجرا نکرده اید، به احتمال زیاد پیامی دریافت خواهید کرد: فایل آپلود نمیشه<имя_скрипта>زیرا اجرای اسکریپت در این سیستم مجاز نیست. برای اطلاعات بیشتر «get-help about_signing» را تایپ کنید. این به دلیل این واقعیت است که به دلایل امنیتی و برای جلوگیری از اعدام تصادفی کد مخرب، تمام اسکریپت ها باید امضای دیجیتالی داشته باشند.

چگونه می توان اجازه اجرای یک اسکریپت بدون امضا PowerShell را داد؟

1. در PowerShell، قبل از اجرای اسکریپت، دستوری را اجرا کنید که اجازه اجرای اسکریپت های بدون امضا را برای جلسه پوسته فعلی می دهد:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. راه اندازی از خط فرمان استاندارداز گزینه -executionpolicy استفاده کنید، i.e. اسکریپت را به این صورت اجرا کنید:

<имя_скрипта>

هر دو روش سیاست را فقط برای جلسه جاری تنظیم می کنند، در حالی که خط مشی امنیتی اجرای اسکریپت PowerShell مشخص شده در رجیستری تغییر نخواهد کرد و ثابت می ماند. اگر می خواهید سیاست امنیتی اجرای اسکریپت را به دائمی تغییر دهید، از این روش استفاده کنید:

3. اجازه راه اندازی برای همیشه: PowerShell را به عنوان "Administrator" اجرا کنید، سپس دستور را اجرا کنید:

Set-ExecutionPolicy RemoteSigned

توجه داشته باشید:اگر اسکریپت از اینترنت بارگیری شده است، برای جلوگیری از درخواست تأیید راه اندازی، باید به جای RemoteSigned از Bypass استفاده کنید - غیرفعال کردن کامل هرگونه درخواست و هشدار.

چگونه یک اسکریپت PowerShell را در پس زمینه اجرا کنیم؟

برای انجام این کار، فقط از پارامتر راه اندازی -WindowStyle استفاده کنید که می تواند مقادیر زیر را داشته باشد: Normal، Minimized، Maximized و Hidden. بنابراین برای اجرای یک اسکریپت بدون امضا در زمینه، باید دستور را اجرا کنید:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

در صورت تمایل می توانید -NonInteractive را نیز اضافه کنید تا اسکریپت هیچ سوالی نپرسد. بنابراین، اسکریپت به صورت نامحسوس برای کاربر اجرا می شود. در استفاده از این روش مراقب باشید.

اجرای یک اسکریپت PowerShell با پارامترها

پرتاب واقعی باید طوری انجام شود که گویی شما در حال راه اندازی هستید برنامه منظمیا فایل bat با پارامترها. به عنوان مثال، برای اجرای یک اسکریپت با پارامترهایی از خط فرمان، می توانید دستور زیر را بنویسید:

powershell -executionpolicy RemoteSigned -file<имя_скрипта>param1 param2 "پارامتر متن دیگری"

در خود اسکریپت، می توانید این پارامترها را به صورت زیر دریافت کنید:

Param ($var1، $var2، $var3) echo $var1، $var2، $var3

در PowerShell ISE، می‌توانید یک اسکریپت با پارامترها را به همان روش با استفاده از پنجره فرمان اجرا کنید.

چگونه یک اسکریپت PowerShell را با استفاده از میانبر اجرا کنیم؟

دو راه برای انجام این کار وجود دارد:

  1. یک فایل bat/cmd ایجاد کنید که در آن دستوری برای اجرای اسکریپت ثبت کنید (شما پارامترهای بالا را خوانده اید)
  2. یک میانبر برای PowerShell ایجاد کنید که در c:\Windows\System32\WindowsPowerShell\v یافت می شود.<версия>\ و در خصوصیات میانبر در قسمت "Object" پارامترهای لازم را اضافه کنید.

بنابراین، برای مثال، برای اجرای یک اسکریپت powershell هنگام ورود کاربر، می‌توانید به سادگی یک میانبر، همانطور که در پاراگراف دوم توضیح داده شد، ایجاد کنید و آن را در autoload قرار دهید. همچنین، ایجاد میانبر با استفاده از یکی از روش های بالا، اجرای اسکریپت را به عنوان مدیر یا هر کاربر دیگری به عنوان یک برنامه معمولی آسان می کند.

زبان برنامه نویسی PowerShell یک ابزار بسیار قدرتمند برای حل مشکلات مختلف است، اما می توان از آن نه تنها برای چیزهای خوب، بلکه برای مضرات استفاده کرد، بنابراین از آن عاقلانه استفاده کنید؛)

بیش از یک سال از انتشار ویندوز 7 و سرور 2008 می گذرد.

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

کاربران مبتدی، در بیشتر موارد، حتی نمی دانند PowerShell (PS) چیست.

اما اسکریپت های PowerShell به شما این امکان را می دهند که تقریباً 100٪ از اقدامات و اسکریپت های انجام شده در سیستم عامل را از طریق خط فرمان و رابط گرافیکی خودکار کنید.

بیایید با توجه بیشتر به کارکردهای ایجاد و اجرای اسکریپت ها (ریز برنامه ها) با ویژگی های اصلی این برنامه آشنا شویم.

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

Windows PowerShell چیست؟

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

اولی به این معنی است که در حالت متنی کار می کند: وارد می شوید، دستوری را اجرا می کنید و در صفحه نتیجه اجرای آن را می بینید.

همانطور که در MS-DOS و نسخه های قدیمی یونیکس بود.

مورد دوم مدیریت، نگهداری سیستم‌ها، برنامه‌های کاربردی، فرآیندها و خدمات مرتبط توسط مدیران و کاربران عادی را تا حد زیادی ساده، سرعت می‌بخشد و خودکار می‌کند.

در مقایسه با سایر مفسران، PS متفاوت است:

  • ادغام با. - به شما اجازه می دهد تا اسکریپت های قدرتمندی را با تعبیه کد برنامه در آنها ایجاد کنید.
  • همه داده های برگشتی اشیا هستند، نه داده هایی از نوع متن/رشته (رشته)، که دلالت بر انتقال آنها به اسکریپت های دیگر و هر پردازشی دارد.

پاورشل نسخه 2دارای ویژگی های زیر است، که برخی از آنها را با جزئیات بیشتر بررسی خواهیم کرد:

  • امکان نمایش دستورات به صورت cmdlet- آنها در داخل مفسر راه اندازی می شوند، در غیر این صورت دستور در یک فرآیند جداگانه اجرا می شود.
  • استفاده از خطوط لوله- طراحی شده برای انتقال داده ها از یک دستور به فرمان دیگر با حفظ ساختار و نوع آنها.
  • انتقال داده چند رشته ای یکپارچهاز طریق شبکه با تنظیمات اولویت و از سرگیری اتصال.
  • پشتیبانی از پارامترهای موقعیتی و نامگذاری شده
  • کار پس زمینه- فراخوانی ناهمزمان دستورات و راه اندازی اسکریپت ها در ماشین های راه دور.
  • راه اندازی جلسات محدود با مشتریان راه دورو اجرای اسکریپت روی آنها.
  • ماژول ها- راهی برای سازماندهی اسکریپت ها زمانی که به خودکفایی رسیدند و در ظرف خود بدون تأثیر بر محیط ماژول اجرا شوند.
  • وجود یک کنترل کننده خطا.
  • محیط گرافیکی برای زبان: نحو، دیباگر، برجسته سازی، تکمیل خودکار فرمان با پشتیبانی یونیکد و نشانک ها.
  • اضافه کردن نقاط شکست به خطوط، دستورات، عملیات و متغیرهای اشکال زدایی اسکریپت.
  • کامنت ها را مسدود و درون خطی کنید.
  • پشتیبانی از ایجاد نام مستعار برای برخی از cmdlet ها، که در زمان اجرا به دستورات معمولی تبدیل می شوند.
  • ایجاد جلسات محدود،که در آن می توانید یک لیست کاملاً مشخص از دستورات و موارد دیگر را اجرا کنید.

کد منبع PowerShell در دسترس همه قرار گرفت: هر عضوی از جامعه آزاد است تا پسوندهای خود را برای افزایش عملکرد مفسر خط فرمان ایجاد کند.

می توانید بدون مهارت برنامه نویسی به زبان برنامه نویسی یکپارچه تسلط پیدا کنید.

بعید است که امکان ایجاد یک اسکریپت پیچیده وجود داشته باشد، اما تقریباً همه می توانند دنباله هایی از اقدامات اولیه را انجام دهند.

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

Cmdlets

Cmdlets- دستورات اصلی PS که در پشت آنها توابع مختلفی پنهان شده است. دستورات تعبیه شده در مفسر طبق اصل "فعل-اسم" اجرا می شوند، به عنوان مثال، Get-Process (دریافت لیستی از فرآیندها). این راه حل به شما امکان می دهد تا ماهیت تیم را از قبل از نام آن (به زبان انگلیسی) درک کنید.

برخی از cmdlet ها از دریافت/انتقال داده ها و آرایه های اطلاعات پشتیبانی می کنند و در عین حال ساختار و نوع خود را حفظ می کنند. این بر اساس اصل یک خط لوله کار می کند (این مورد در بخش بعدی مورد بحث قرار خواهد گرفت). مهم نیست که چه چیزی، cmdlet ها اجرا می شوند و اشیاء را به ترتیب دقیق پردازش می کنند.

برای پیاده‌سازی cmdlet‌ها، می‌توان از هر API .NET پشتیبانی‌شده ایجاد شده در هر یک از زبان‌های .NET استفاده کرد.

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

Cmdlet ها می توانند به طور مستقیم یا از طریق مسیرهای منحصر به فرد (حروف درایو و مسیرهای دایرکتوری) به اطلاعات مورد نیاز دسترسی پیدا کنند.

از طریق cmdlet ها می توانید با اشیا کار کنید سیستم فایلو فروشگاه های گواهی برنامه های نصب شدهو خدمات

نوار نقاله

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

یک نوار نقاله برای این کار وجود دارد. مانند یونیکس، دستورات را با ارسال خروجی یک cmdlet به ورودی دیگری، بدون تغییر و حفظ نوع آن، به هم متصل می کند.

نیازی به تجزیه نویسه به نویسه اطلاعات ندارد.

اطلاعات ارسال شده ممکن است شامل یک تابع نیز باشد.پس از اتمام کار دستورات ترکیبی، عملکرد تبدیل اطلاعات به فرم متنی (تبدیل داده ها به رشته ها) با استفاده از قالب بندی متن نامیده می شود.

اسکریپت ها

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

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

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

برای انجام زنجیره های یکنواخت از اقدامات در PS، اسکریپت ها پیاده سازی می شوند - فایل های متنیبا توالی دستورات قابل درک برای مفسر در داخل.

اسکریپت‌ها در PowerShell کار روی رایانه شخصی و نگهداری آن را ساده‌تر و خودکار می‌کنند، به خصوص اگر اسکریپت شامل شاخه‌ها، شرایط، عملیات منطقی و حلقه‌ها باشد.

اما در اینجا "همه چیزهایی که می درخشند طلا نیستند": نوشتن فیلمنامه خود یا آپلود یک متن آماده (البته کمی متناسب با اهداف شما) به این راحتی کار نخواهد کرد.

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

برای اجرا در ویندوز PS، باید کنترل راه اندازی آن را پاس کنید.

اگر رد نشد و اسکریپت باید اجرا شود، باید پیکربندی اشیاء مسئول امنیت ماکروها را تغییر دهید.

قبل از استفاده از اسکریپت ها

هنگام کار با VBS، اگر امنیت اسکریپت برای برآورده کردن درخواست‌های اسکریپت کاربر یا حل مشکلات مربوط به سطح امنیت سیستم عامل کاهش نیابد، مشکلات زیادی وجود دارد که توسعه‌دهندگان PowerShell به طور کامل از شر آنها خلاص شدند.

اجرای اسکریپت دانلود شده روی دستگاه کاربر یک گزینه ساده و موثر برای انتشار بدافزار یا سرقت است. اطلاعات شخصیمهاجمان

همه چیز به دلیل ناآگاهی اولیه از محتویات فایل اسکریپت (ps1) اتفاق می افتد.و تمایل به حل سریع مشکلات خود به قیمت کار دیگران. اشیایی که سطح امنیتی اجرای اسکریپت را کنترل می کنند، محیطی را ایجاد می کنند که اسکریپت در آن اجرا نمی شود.

راه‌اندازی عمدی ماکروها پس از تغییر سطح امنیتی اتفاق می‌افتد، در صورتی که کاربر اجازه دهد، متوجه شود چه کاری انجام می‌دهد و مطمئن باشد که در فایل *.ps1 چه چیزی وجود دارد.

با توجه به ناراحتی پیکربندی امنیتی برای افرادی که نیاز به پیاده سازی و اجرای اسکریپت های خود دارند، امکان تغییر پیکربندی وجود دارد.

در اینجا می توانید هم حفاظت را به حداقل برسانید و هم می توانید بین توانایی باز کردن سوراخ ها برای نفوذ و راحتی کار با PowerShell مانور دهید.

پوسته دارای سه سطح امنیتی است:

  • فایل های با پسوند ps1 توسط سیستم شناسایی نمی شوندبه عنوان قابل اجرا و به عنوان ناشناخته یا متن تعیین می شوند (برای باز کردن در ویرایشگر متن پیش فرض مورد استفاده در رایانه، دوبار کلیک کنید).
  • پوسته به شما اجازه می دهد تا اسکریپت ها را پس از مشخص کردن مسیر کامل آنها اجرا کنید، فایل های اسکریپت در دایرکتوری فعلی جستجو نمی شوند و اجرای ماکروهای موجود در فهرست فعلی را غیرممکن می کند.
  • اجرای سیاست اجرای اسکریپت داخلی، که وظیفه اضافه کردن مورد مورد نیاز به لیست اسکریپت های مجاز را بر عهده دارد.

حتی به تغییر پیکربندی فکر نکنید، آن را حداقل به سطح دوم پایین بیاورید، بدون اینکه با اصول اولیه آشنا شویدپاورشل، تا زمانی که شروع به درک حداقل سطحی محتوای * کنید.ps1.

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

  • محدود -به طور پیش فرض نصب شده است، فقط اسکریپت های امضا شده توسط مایکروسافت اجرا می شوند که اجازه به دست آوردن اطلاعات در مورد پوسته سخت افزار و نرم افزار رایانه را می دهد.
  • امضاء شده فایل های حذف شده - می توانید همه ماکروها را اجرا کنید، اما هر یک از فایل های ارسال شده از طریق پست باید امضا شوند.
  • به صورت دیجیتالی توسط یک منبع قابل اعتماد امضا شده است- تمام اسکریپت های امضا شده اجرا می شوند.
  • نامحدود- اجرای هر ماکرو
  • میان بر- برای برنامه نویسانی در نظر گرفته شده است که سیستم امنیتی خود را ایجاد می کنند و از سیستم ارائه شده در پوسته استفاده نمی کنند.

تأیید کنید وضعیت فعلیسیاست راه اندازی را می توان با دستور "Get-ExecutionPolicy" انجام داد.خط مشی امنیتی هرچه باشد، کاربر نمی تواند اسکریپتی را اجرا کند که حاوی دستوراتی است که برای اجرای آنها امتیاز کافی را ندارد.

در حال اجرا PowerShell

زمان حرکت از تئوری به عمل فرا رسیده است. بنابراین، برای اجرای اسکریپت ها، باید یک امضای دیجیتال یا (گزینه دوم ساده تر است) دریافت کنید.

راه های مختلفی برای نمایش یک پنجره PowerShell وجود دارد.

به دو صورت ارائه می شود:

  • کنسول کلاسیک؛

  • پاورشل ISE - پشتیبانی از زبانه ها، نحو، کمک زمینه، زمینه و منوهای اصلی را اضافه می کند که کار در مفسر را تا حد زیادی تسهیل می کند.

شروع کنید

ساده ترین راه برای تماس با PS از طریق Start است.

  1. باز کردن منو(در ویندوز 7 روی "همه برنامه ها" کلیک کنید).
  2. به دایرکتوری Windows PowerShell برویدو بر روی آیکون مورد نظر کلیک کنید.

برنج. 4 - PS را از طریق Start راه اندازی کنید

همچنین می توانید از طریق استفاده با PS تماس بگیرید موتور جستجوی یکپارچه

مترجم فرمان

که عاشق غیر استاندارد و راه های سریعراه اندازی، از پنجره "Run" استفاده کنید. با دکمه ای به همین نام در Start و کلید ترکیبی Win + R باز می شود.

در کادر محاوره ای بنویسید "پاورشل"و "Enter" را فشار دهید.

Win+X

در ویندوز 10 PS را می توان از منوی WinX فراخوانی کرد. واقعیت این است که به طور پیش فرض، با کلیک بر روی دستور "خط فرمان" CMD را باز کنید می توان آن را با PowerShell جایگزین کرد.

"Properties" نوار وظیفه را باز کنید، در تب "Navigation"، کادر کنار تنها گزینه را علامت بزنید و تنظیمات را ذخیره کنید.

می توانید از طریق PowerShell تماس بگیرید خط فرمان، با نوشتن "powershell" در آن یا اجرای فایل اجرایی در مسیر: %WINDIR%\ System32\ WindowsPowerShell\v1.0 برای سیستم های 32 بیتی و در %WINDIR%\ syswow64\ WindowsPowerShell\v1.0 برای 64 بیت ویندوز هرنسخه ها

برنج. 8 - راه اندازی PS از دایرکتوری که فایل اجرایی آن در آن ذخیره شده است

تنظیم خط مشی امنیتی

کمی ترک کرد- به PowerShell اجازه دهید تا اسکریپت ها را اجرا کند. دستور "Set-ExecutionPolicy RemoteSigned" را می نویسیم و "Y" را فشار می دهیم.

همین. اکنون می توانید هر cmdlet و اسکریپت را اجرا کنید. بیایید سعی کنیم، برای مثال، با اجرای "Get-Process" فهرستی از فرآیندهای فعال را نمایش دهیم.

در حال اجرا اسکریپت ها

می‌توانید اسکریپت‌ها را به هر شکلی بسازید (بهتر است در Win یا موارد مشابه، با پشتیبانی نحو یا بررسی) یا در برنامه پاورشل ISE.

دومی دسترسی راحت به cmdlet ها، امکان اجرا، اشکال زدایی و ذخیره اسکریپت ها را فراهم می کند.

فرض کنید شما اولین اسکریپت خود را نوشته اید (این در حال دریافت لیست است فرآیندهای در حال اجرا، از طریق منوی "File" ذخیره می شود و باید راه اندازی شود. این کار به سه روش انجام می شود:

1 مسیر کامل اسکریپت را در PowerShell (یا ISE) بنویسید);

برنج. 13 - اجرای اسکریپت ها از پنجره PowerShell ISE

مهمبه طوری که در مسیر فایل هیچ فاصله ای وجود نداشته باشد!

پاورشلدرمان قدرتمندبرای ساده کردن عملیات روتین در سرور 2008 و جدیدتر. مزیت مهم PowerShell - اسکریپت ها و حضور است نسخه های برنامه از رابط کاربری گرافیکی PS ISE. دستورات موجود در آن به صورت cmdlet ارائه شده است که امکان آشنایی با پوسته و درک معنای هر دستور را فراهم می کند. سیاست امنیتی از آسیب رساندن یک مبتدی به رایانه خود جلوگیری می کنداسکریپت های به دست آمده از منابع ناشناخته و حالت اشکال زدایی، ایجاد cmdlet ها، توابع و مکانیزم مدیریت خطا، امکانات نامحدودی را برای برنامه نویسان و مدیران باز می کند.