پاورشل در ویندوز 7 چیست. اصول اولیه ویندوز پاورشل. Cmdlet ها در PowerShell

سلام به همه! امروز یک یادداشت کوتاه در مورد موضوع، نحوه باز کردن powershell به عنوان مدیر. اجازه دهید به شما یادآوری کنم که PowerShell یک زبان برنامه نویسی و مدیریت قدرتمند مایکروسافت است که هر سال رشد می کند، همه چیز مقدار زیاد cmdlet ها و عملکرد. در اصل، جایگزینی برای Command Prompt ویندوز است. در زیر روش هایی را در نظر خواهیم گرفت که به شما امکان می دهد آن را باز و پیکربندی کنید.
.

روش‌هایی برای باز کردن یک اسنپ‌این PowerShell

Powershell در حال توسعه بسیار خوبی است و با انتشار ویندوز 10 نسخه 5 را دریافت کرده است، اما موضوع ما متفاوت است. پس چگونه powershell را باز کنیم؟ همه چیز ساده است اگر در ویندوز XP، پس هیچ چیز. از آنجایی که به طور جداگانه ارائه می شود، در تمام نسخه های بعدی به عنوان یک جزء داخلی ارائه می شود. اکثر روش جهانیاین کلیک پاورشل را باز کنید

Win+R را وارد کنید و وارد powershell شوید

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

نحوه اجرای windows powershell به عنوان مدیر در ویندوز 8.1 و ویندوز 7

می توانید Windows Powershell را از طریق Start باز کنید. در ویندوز 8.1، ویندوز 2012 R2، به System Tools - Windows رفته و کلیک راست کرده و Run as administrator را انتخاب کنید.

در ویندوز 7 و ویندوز 2008 R2 به این صورت است Start > Accessories > Windows PowerShell

همچنین می توانید یک میانبر در آیتم وظیفه ایجاد کنید و روی آن کلیک راست کرده و مورد مناسب را انتخاب کنید

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

روی آن راست کلیک کرده و Properties را انتخاب کنید. بلافاصله می توانید مسیر فایلی که در سیستم قرار دارد را مشاهده کنید.

روی دکمه "پیشرفته" کلیک کنید. خواص اضافی را مشاهده خواهید کرد. جایی که باید کادر Run as administrator را علامت بزنید.

همه چیز بسیار ساده است. من مطمئن هستم که اکنون در مورد نحوه باز کردن Windows Powershell سؤالی نخواهید داشت. یکی دیگر از موارد مفید تغییر فونت در پنجره powershell است.

نحوه باز کردن PowerShell از منوی زمینه دکمه Start در ویندوز 10

مایکروسافت به طور فزاینده ای بر این موضوع تاکید دارد خط فرمانبه زبان قوی خود (PowerShell) و این منطقی است، زیرا توانایی های آن برای مدیریت سیستم عامل ها خانواده ویندوز، تقریباً بی حد و حصر هستند، اگر نه بیشتر از رابط گرافیکی. شروع با نسخه های ویندوز 10 1709، در منوی زمینه، PowerShell، جایگزین cmd معمولی برای همه شد. بر روی دکمه شروع در ویندوز 10 کلیک راست کرده و از منوی زمینه، مورد مناسب را انتخاب کنید:

  1. Windows PowerShell
  2. Windows PowerShell (administrator) دقیقاً حالتی است که حداکثر حقوق را در ویندوز 10 دارد.

Windows PowerShell را با استفاده از جستجو در ویندوز 10 راه اندازی کنید

در ویندوز 10 و نسخه های قدیمی تر، می توانید PowerShell را با استفاده از آن پیدا کنید جستجوی منظم، بخش ویژه ای برای این کار وجود دارد. در کنار دکمه Start، نماد ذره بین کلیک کنید. در فرم جستجویی که باز می شود کلمه PowerShell را وارد کنید. شما تمام گزینه ها را جستجو خواهید کرد که در میان آنها پوسته را پیدا خواهید کرد. اگر روی آن راست کلیک کنید، می توانید آن را به عنوان یک مدیر باز کنید.

راه اندازی Windows PowerShell از منوی Start در ویندوز 10

برای باز کردن PowerShell از منوی Start، آن را باز کنید و مورد Windows PowerShell را پیدا کنید، به صورت یک پوشه خواهد بود، آن را باز کرده و نسخه مناسب را اجرا کنید.

اگر راست کلیک کنید، می توانید پوسته Vershel را به عنوان یک مدیر با حقوق مدیر اجرا کنید.

روش های پرتاب پوسته اضافی و عمومی

همچنین روش های بسیار خاصی برای باز کردن پوسته با زبان قدرتمند مایکروسافت وجود دارد. دست و پا چلفتی ترین، پیدا کردن آن آسان است فایل اجراییو آن را مستقیماً از مکانی روی سیستم اجرا کنید. بیایید در مسیر زیر به ویندوز 10 خود برویم:

C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

در نتیجه، پوشه ای با میانبرهای موجود در منوی Start مشاهده می کنید که می توانید آنها را راه اندازی کنید.

همچنین می توانید فایل اجرایی اصلی را که در مسیر زیر قرار دارد اجرا کنید:

C:\Windows\System32\WindowsPowerShell\v1.0

و با کلیک راست بر روی آن می توانید آن را به عنوان مدیر و با حداکثر حقوق دانلود کنید.

همچنین می توانید Windows PowerShell را از پنجره خط فرمان راه اندازی کنید؛ برای این کار کافی است کلمه جادویی را در آن وارد کنید و Enter را فشار دهید.

خوب، اجازه دهید روش راه‌اندازی یک کار جدید را از Snap-in "Task Manager" نیز به شما یادآوری کنم. "Task Manager" را باز کنید، آیتم منو "File - Run task new" را انتخاب کنید.

در پنجره ای که ظاهر می شود، PowerShell را وارد کنید.

خوب، آخرین روشی که برای من شناخته شده است، راه اندازی PowerShell، از طریق Windows Explorer 10، برای انجام این کار، Explorer را باز کنید، آیتم منو "File - راه اندازی Windows PowerShell" را انتخاب کنید، هر دو حالت وجود دارد.

PowerShell ISE چیست؟

احتمالاً متوجه شده اید که میانبر PowerShell ISE در همه جا وجود دارد و دوست دارید بدانید که چیست. به طور خلاصه، این یک پوسته ویژه است که در آن می توانید اسکریپت ها و سناریوها را در PowerShell با استفاده از انواع cmdlet هایی که مایکروسافت به شما ارائه می دهد بنویسید.

تغییر فونت پاورشل بسیار ساده است، به تب Font در خصوصیات بروید، در آنجا می توانید اندازه را از 5 تا 72 تنظیم کنید.

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

در اینجا تنظیمات فونت کمی متفاوت است و با تغییر آنها، اندازه کنسول نیز تغییر می کند.

در تب Colors می توانید رنگ فونت را در Powershell و خود پنجره تنظیم کنید. با سیاه کردن آن، به عنوان مثال، مانند خط فرمان.

همچنین توصیه می‌کنم که اگر کاربر فعال کنسول هستید، اندازه بافر را نه 50 دستور، بلکه حداقل روی 100 تنظیم کنید.

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

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

پاورشل چیست؟

برای درک بهتر، ابتدا باید بفهمیم که پوسته چیست. در علوم کامپیوتر، پوسته یک رابط کاربری است که دسترسی به خدمات مختلف را فراهم می کند. سیستم عامل. پوسته ممکن است مبتنی بر خط فرمان باشد یا ممکن است شامل یک رابط کاربری گرافیکی (GUI) باشد.

Windows PowerShell پوسته ای است که توسط مایکروسافت برای اهداف اتوماسیون وظایف و مدیریت پیکربندی توسعه یافته است. این پوسته قدرتمند مبتنی بر چارچوب دات نت است و شامل یک پوسته خط فرمان و یک زبان برنامه نویسی است.

همچنین ممکن است یک Windows PowerShell ISE در بالای پوسته خط فرمان استاندارد وجود داشته باشد. ISE به عنوان یک محیط برنامه نویسی یکپارچه عمل می کند - یک رابط کاربری گرافیکی که به شما امکان می دهد اسکریپت های مختلف را بدون نیاز به وارد کردن تمام دستورات در خط فرمان ایجاد کنید.

اولین نسخه PowerShell در نوامبر 2006 برای ویندوز XP منتشر شد. ویندوز سرور 2003 و ویندوز ویستا. آخرین نسخه 4.0 است که در اکتبر 2013 منتشر شد. به طور پیش فرض با ویندوز 8.1 و ویندوز سرور 2012 R2 ارائه می شود.

با PowerShell چه کاری می توانید انجام دهید؟

مایکروسافت Windows PowerShell را به عنوان ابزاری توسعه داد که به خودکارسازی و حل سریع بسیاری از کارهای اداری خسته کننده کمک می کند. به عنوان مثال، می‌توانید از PowerShell برای مشاهده همه دستگاه‌های USB نصب شده بر روی یک یا چند رایانه در یک شبکه استفاده کنید، یا می‌توانید یک کار وقت‌گیر را برای اجرا در آن تنظیم کنید. زمینهدر حالی که شما کارهای دیگری انجام می دهید. همچنین می‌توانید فرآیندهایی را که پاسخ نمی‌دهند شناسایی و خاتمه دهید، یا اطلاعات خاصی درباره رایانه‌های موجود در شبکه خود را فیلتر کرده و آن‌ها را در قالب HTML صادر کنید.

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

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

چگونه PowerShell را در ویندوز 8.1 اجرا کنیم؟

اگر کاشی PowerShell در صفحه شروع خود یا میانبر روی دسکتاپ خود ندارید، می توانید آن را با استفاده از جستجو باز کنید - این یکی از بهترین هاست. راه های ساده. +Q را فشار دهید، "powershell" را تایپ کنید و سپس Enter را فشار دهید.

همچنین می‌توانید PowerShell را از بخش برنامه‌ها در صفحه شروع باز کنید: به صفحه اصلیو مکان نما را به گوشه پایین سمت چپ، درست زیر آخرین کاشی در ستون اول حرکت دهید. روی نماد با فلش رو به پایین کلیک کنید. سپس روی نماد PowerShell در بخش "Utilities" کلیک کنید.

برای باز کردن PowerShell با استفاده از محاوره Run، +R را فشار دهید، "powershell" را تایپ کنید و Enter را فشار دهید.

چگونه PowerShell را در ویندوز 7 اجرا کنیم؟

در ویندوز 7، می‌توانید با جستجوی «powershell» در منوی استارت، این ابزار را پیدا کنید.

همچنین می توانید PowerShell را از طریق منوی Start در بخش لوازم جانبی باز کنید.

بدیهی است که دستور بالا در پنجره Run در ویندوز 7 نیز کار می کند.

چه کسانی معمولا از PowerShell استفاده می کنند؟

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

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

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

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

روز خوبی داشته باشی!

در این مقاله به چنین فناوری هایی از مایکروسافت نگاه خواهیم کرد Windows PowerShell، در مورد PowerShell چیست، cmdlet ها و pipeline ها، نحوه نوشتن اسکریپت ها و ماژول ها صحبت خواهیم کرد و همچنین سایر ویژگی های به همان اندازه مهم و مفید Windows PowerShell را لمس خواهیم کرد.

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

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

اکثر محصولات نرم افزاری دارای رابط کنسول هستند، به عنوان مثال. ما می توانیم برنامه را با استفاده از خط فرمان مدیریت کنیم و در عین حال به دلیل کمبود هزینه های کاری در منابع صرفه جویی کنیم رابط کاربری گرافیکی. مایکروسافت حتی نسخه هایی را بدون رابط گرافیکی برای سیستم عامل سرور ویندوز سرور منتشر می کند ( Server Core، Windows Server 2016 حتی دارای نانو سرور است، اما همه اینها کافی نیست، زیرا قابلیت های خط فرمان محدود است، یعنی. ما نمی‌توانیم منطق پیچیده‌ای برای خودکار کردن چیزی بنویسیم، و حتی اگر بتوانیم، زمان و دانش لازم است.

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

فناوری میزبان اسکریپت ویندوز به شما امکان می دهد تمام وظایف اداری را به عنوان خط فرمان انجام دهید، از جمله اتوماسیون آنها با نوشتن اسکریپت های WSH، اما در اینجا می توانیم از زبان های برنامه نویسی کامل استفاده کنیم ( VBScript و JScript) یعنی منطق و الگوریتم های پیچیده را می توان پیاده سازی کرد. علاوه بر این، با کمک WSH، محصولات نرم افزاری را از طریق یک رابط شی مدیریت می کنیم، به عبارت دیگر، میزبان اسکریپت ویندوز بسیار بیشتر است. خنک کننده» از خط فرمان. ولی این تکنولوژیهمچنین به آن ابزار ایده آل برای مدیریت و اتوماسیون این مدیریت تبدیل نشد مدیران سیستم، از آنجایی که Windows Script Host به دانش زبان های برنامه نویسی فوق نیاز داشت که در واقع برای مدیران سیستم اضافی است. مدیران فقط به یک ابزار مدیریت ساده با قابلیت برنامه‌نویسی برخی اقدامات نیاز دارند و نمی‌خواهند مدل‌های شی محصولات نرم‌افزاری در زبان‌های برنامه‌نویسی VBScript و JScript را بررسی کنند.

در نتیجه، مایکروسافت نیاز به توسعه یک ابزار مدیریتی برای مدیران سیستم داشت که 100 درصد تمام نیازهای مدیران سیستم را هم از نظر مدیریت و قابلیت های اتوماسیون و هم از نظر راحتی و سهولت استفاده برآورده می کرد، بنابراین Windows PowerShell ظاهر شد.

Windows PowerShell چیست؟

Windows PowerShellیک زبان برنامه نویسی ویندوز و پوسته فرمان است که برای مدیریت و پیکربندی سیستم عامل های ویندوز طراحی شده است. PowerShell در بالای چارچوب CRL و چارچوب دات نت ساخته شده است و برخلاف خط فرمان که متن را می پذیرد و برمی گرداند، Windows PowerShell با اشیاء کار می کند. هر شی در PowerShell دارای ویژگی ها و روش هایی است که می توانید برای دستکاری آن اشیاء استفاده کنید.

در ویندوز Microsoft PowerShellمفهوم cmdlet ها را توسعه داد ( cmdlet ها) که یک سیستم نامگذاری دستورات است " فعل اسم" این سیستم به مدیران سیستم اجازه می دهد تا به سرعت کار با PowerShell را تسلط و ساده کنند.

با با استفاده از ویندوز PowerShell می تواند:

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

Windows PowerShell شامل بسیاری از ابزارها و دستورات رایج است که می توانید از طریق خط فرمان اجرا کنید، مانند ipconfig، ping و غیره. این به منظور تسهیل انتقال مدیران سیستم از خط فرمان به PowerShell انجام شد.

همچنین، برای راحتی، بسیاری از دستورات و ابزارهای پرکاربرد در PowerShell مترادف ( نام مستعاربرای مثال cls مترادف Clear-Host cmdlet است، dir مترادف Get-ChildItem است ( لیست کاملمترادف ها را می توان با اجرای cmdlet Get-Alias ​​مشاهده کرد).

برای ساده کردن جستجوی دستور مورد نظر، PowerShell دارای یک cmdlet Get-Command ویژه است که با آن می توانید هم با فعل و هم با اسم جستجو کنید. تمام دستورات در Windows PowerShell در ماژول ها گروه بندی می شوند ( به عنوان مثال Hyper-V، NetTCPIP) که همچنین یافتن دستور مناسب را آسان تر می کند.

هنگامی که دستور مورد نیاز پیدا شد، می توانید به دستورالعمل های کار با این دستور نگاه کنید، i.e. کمک کنید، یک cmdlet Get-Help مخصوص برای این اهداف وجود دارد، به عنوان مثال دستور زیر راهنمایی برای cmdlet Get-Command را نشان می دهد:

Get-Help Get-Command

راهنما در Windows PowerShell می تواند کوتاه و مفصل باشد ( پارامتر -جزئیات)، پر شده ( پارامتر -Full، و همچنین می توانید فقط نمونه ها را نمایش دهید ( پارامتر - مثال ها). دستور زیر فقط نمونه هایی از استفاده از cmdlet Get-Command را نشان می دهد:

Get-Help Get-Command -نمونه ها

کمک PowerShell قابل به روز رسانی است، به عنوان مثال. می توان آن را با دستور Update-Help به روز کرد.

نسخه های پاورشل ویندوز

اولین نسخه PowerShell 1.0 در 14 نوامبر 2006 ظاهر شد و به عنوان یک توزیع جداگانه منتشر شد که می توانست بر روی نسخه های زیر از سیستم عامل های ویندوز نصب شود: Windows XP Service Pack 2، Windows Server 2003 Service Pack 1 و Windows Vista.

در Windows Server 2008، PowerShell 1.0 به عنوان کامپوننتی بود که باید نصب می شد.

با شروع با Windows 7 و Windows Server 2008 R2، PowerShell به عنوان یک جزء جدایی ناپذیر از سیستم ( آن ها از قبل نصب شده است، نیازی به نصب آن نیست). در زیر جدول مطابقت بین نسخه PowerShell و نسخه سیستم عامل ویندوز ( آن ها چه نسخه ای از PowerShell به طور پیش فرض روی کدام نسخه از ویندوز نصب شده است):

نسخه پاورشل نسخه های ویندوز
PowerShell 2.0 ویندوز 7، ویندوز سرور 2008 R2
PowerShell 3.0 ویندوز 8، ویندوز سرور 2012
PowerShell 4.0 ویندوز 8.1، ویندوز سرور 2012 R2
PowerShell 5.0 ویندوز 10، ویندوز سرور 2016

با هریک نسخه جدید PowerShell در حال تبدیل شدن به یک ابزار مدیریتی قدرتمند است؛ در مقایسه، اولین PowerShell حدود 130 cmdlet داشت و PowerShell 5.0 اکنون بیش از 600 cmdlet دارد!

دانستن نسخه فعلی PowerShell می تواند از ویژگی PSVersion متغیر داخلی $PSVersionTable استفاده کند، برای مثال، دستور زیر را اجرا کند:

$PSVersionTable.PSVersion

یا cmdlet را اجرا کنید

Get-Variable -Name PSVersionTable –ValueOnly

که در آن، مقدار PSVersion نسخه PowerShell خواهد بود.

زبان پاورشل

پاورشلیک زبان برنامه نویسی برنامه نویسی شی گرا است. برای نوشتن دستورات برای کنترل تمام اجزای سیستم عامل ویندوز در Windows PowerShell و همچنین برای نوشتن اسکریپت هایی برای خودکارسازی وظایف اداری در یک محیط یکپارچه استفاده می شود. اسکریپت های ویندوزپاورشل (ISE). اگرچه زبان PowerShell برای کارهای مدیریتی ایجاد شده است، اما یک زبان برنامه نویسی اسکریپت نویسی تمام عیار است، زیرا دارای ساختارهای برنامه ای است که در هر زبان برنامه نویسی وجود دارد، مانند: شرایط، حلقه ها، مدیریت خطا، کار با متغیرها، اشیاء و ... آرایه ها

زبان PowerShell دارای یک نحو یکنواخت برای نوشتن دستورات و ساختار نامگذاری برای این دستورات بر اساس اصل ” است. فعل اسم"، او چه کار می کند زبان داده شدهبصری برای برنامه نویسان و مدیران سیستم.

Windows PowerShell

Windows PowerShellمحیطی برای اجرای دستورات و اسکریپت ها در PowerShell است. این پوسته دارای قابلیت های مشابه خط فرمان مانند: ذخیره تاریخچه اجرای دستورات، تنظیم ظاهرپوسته، تکمیل دستورات با کلید ترکیبی Ctrl+C، و همچنین بسیاری از ویژگی‌های دیگر که در پوسته خط فرمان در دسترس نیستند، به عنوان مثال ویژگی فوق‌العاده‌ای مانند « برجسته سازی نحو» ( معرفی شده در PowerShell 5.0).

چندین راه برای راه اندازی PowerShell وجود دارد، به عنوان مثال:

  • از خط فرمان با تایپ PowerShell؛
  • از طریق کادر محاوره ای " اجرا کردن» ( میانبر صفحه کلید Win+R، همچنین PowerShell را تایپ کنید.
  • در ویندوز 7 - Start->All Programs -> Accessories -> Windows PowerShell -> Windows PowerShell;
  • در Windows 8.1 یا Windows Server 2012 R2 - Start->All Programs -> System Tools -> Windows PowerShell;
  • در Windows 10 یا Windows Server 2016 - Start->All Programs -> Windows PowerShell Directory ( در گروه W) -> Windows PowerShell.

نمونه ای از اجرای PowerShell در ویندوز سرور 2016

اسکرین شات PowerShell در ویندوز سرور 2016

Cmdlet ها در PowerShell

Cmdlet (cmdlet) - این دستور ویندوز PowerShell، که با آن می توانید با اشیاء سیستم عامل به منظور مدیریت آنها تعامل داشته باشید. این دستورات بخشی از زبان PowerShell هستند. Cmdlet ها بر اساس اصل " ساخته شده اند فعل اسم"، با خط فاصله (-) از هم جدا شده است. به عبارت دیگر ابتدا آنچه را که باید انجام دهیم و با خط فاصله نشان می دهیم که چه باید کرد. به عنوان مثال، cmdlet Get-Help، که در آن Get یک فعل است به معنای " گرفتن"و Help یک اسم است" کمک"در زمینه PowerShell" نمایش - کمک" cmdlet های PowerShell نتایج را به عنوان اشیا برمی گرداند، که یکی از تفاوت های اصلی با Command Prompt ویندوز است که در آن دستورات فقط متن را به صفحه باز می گرداند.

علاوه بر cmdlet برای به دست آوردن اطلاعات (Get)، انواع cmdlet نیز وجود دارد مانند:

  • اضافه کردن - اضافه کردن داده ها؛
  • روشن - روشن;
  • فعال کردن - فعال کردن
  • غیرفعال کردن - خاموش کردن؛
  • جدید – ایجاد؛
  • حذف - حذف
  • مجموعه - مجموعه;
  • شروع - شروع؛
  • ایست ایست؛
  • صادرات - صادرات;
  • واردات – واردات؛
  • و خیلی بیشتر.

لیست کامل cmdlet ها در Windows PowerShell را می توان با استفاده از cmdlet ویژه Get-Command مشاهده کرد. برای مثال آن را با پارامتر cmdlet -CommandType اجرا کنید، در نتیجه لیستی از cmdlet ها روی صفحه نمایش شما نمایش داده می شود.

Get-Command -CommandType cmdlet

همانطور که قبلا متوجه شدید، cmdlet ها دارای پارامترهایی هستند که با آنها می توانیم اقدامات cmdlet را مشخص کنیم. پارامترها می توانند مورد نیاز یا اختیاری باشند؛ برای مثال، cmdlet Get-Command هیچ پارامتر لازمی ندارد.

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

تیم

Get-Command -Verb Restart

برای جستجوی cmdlet بر اساس اسم، باید از پارامتر Noun استفاده کنید. به عنوان مثال، در زیر لیستی از cmdlet هایی داریم که با سرویس ها کار می کنند.

تیم

Get-Command -Noun Service

اگر cmdlet مورد نیاز خود را پیدا نکردید نام و نام خانوادگیمی توانید از ماسک در قالب *Text* استفاده کنید.

خط لوله در PowerShell

یکی از اصلی ترین ویژگی های ویندوز PowerShell می تواند هنگام اجرای دستورات از خط لوله استفاده کند.

نوار نقاله– این انتقال نتیجه یک cmdlet از طریق یک نوار عمودی (|) به cmdlet دیگر است. در همان زمان، همانطور که به یاد دارید، cmdlet ها در PowerShell با اشیاء کار می کنند و اشیاء را برمی گردانند؛ بر این اساس، اشیاء نیز در طول خط لوله منتقل می شوند.

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

به عنوان مثال، بیایید نام بزرگترین فایل را در فهرست "C:\Windows\System32" پیدا کنیم ( مثال ساده یک خط لوله).

تیم

Get-ChildItem -Path "C:\Windows\System32" -File | مرتب سازی-طول شی -نزولی | Select-Object -First 1

  • Get-ChildItem – cmdlet برای دریافت اشیاء در دایرکتوری مشخص شده.
  • Sort-Object یک cmdlet برای مرتب سازی اشیاء است، در مورد ما بر اساس اندازه فایل ( طول -نزولی);
  • Select-Object یک cmdlet برای انتخاب ویژگی های مورد نظر یک شی است؛ در مورد ما، فیلدهای استاندارد را نمایش می دهیم و فقط اولین شی، یعنی. فایل بزرگ (پارامتر -First 1).

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

اجرای پس زمینه وظایف

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

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

Windows PowerShell دارای cmdlet های زیر برای کار با کارهای پس زمینه است:

  • Start-Job – شروع یک کار پس زمینه.
  • Stop-Job – توقف یک کار پس زمینه
  • Get-Job – مشاهده لیست وظایف پس زمینه.
  • Receive-Job – مشاهده نتیجه یک کار پس زمینه.
  • Remove-Job – حذف یک کار پس زمینه.
  • Wait-Job – یک کار پس زمینه را به پیش زمینه منتقل کنید تا منتظر بمانید تا تمام شود.

برای اجرا در پس‌زمینه، باید دستور Start-Job را بنویسید و در پرانتزهای فرفری () یک دستور یا مجموعه‌ای از دستورات را بنویسید که می‌خواهید در پس‌زمینه اجرا شوند.

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

یک کار را در پس‌زمینه اجرا کنید

شروع کار (دریافت خدمات)

ما به لیست کارهایی که در پس‌زمینه اجرا می‌شوند نگاه می‌کنیم

نمایش نتیجه Job1

شغل دریافتی 1

همانطور که می بینید، ما اکنون وظیفه ای با وضعیت داریم تکمیل شد"، یعنی قبلاً تکمیل شده است ( Get-Service فقط به سرعت کار می کند).

برای دیدن نتیجه کار پس زمینه، i.e. Get-Service cmdlet، دستور Receive-Job را اجرا کردیم و نام کار را به آن منتقل کردیم ( مقدار شناسه نیز امکان پذیر است). در نتیجه، ما لیستی از خدمات را نمایش دادیم.

کنترل از راه دور با استفاده از PowerShell

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

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

  • با استفاده از پارامتر -نام کامپیوتر (بسیاری از تیم ها آن را دارند). به عبارت دیگر، شما نام کامپیوتری را که می خواهید دستور را روی آن اجرا کنید به عنوان پارامتر ارسال می کنید. این روش دارای نقطه ضعفی است که محدود به اجرای یک دستور است.
  • استفاده از جلسات Cmdlet Enter-PSSession (جلسه تعاملی). به این ترتیب شما به یک کامپیوتر از راه دور متصل می شوید و تمام دستوراتی که در PowerShell تایپ می کنید بر روی آن اجرا می شوند. کامپیوتر از راه دوردرست مثل اینکه دستورات را مستقیماً روی رایانه راه دور تایپ می کنید. این روش همچنین دارای این عیب است که جلسه به یک کامپیوتر محدود می شود.
  • با استفاده از cmdlet فراخوانی-فرمان. با استفاده از این روششما می توانید دستورات یا اسکریپت ها را روی یک کامپیوتر یا چند کامپیوتر اجرا کنید.

به عنوان مثال، برای اتصال به یک کامپیوتر از راه دور ( در مثال زیر ServerName) در یک جلسه تعاملی، دستور زیر را اجرا کنید:

Enter-PSSession ServerName را وارد کنید

اسکریپت ها، توابع و ماژول ها در Windows PowerShell

اگر الگوریتمی نوشته اید، به احتمال زیاد می خواهید آن را ذخیره کنید تا در آینده از آن استفاده کنید. Windows PowerShell مکانیزم اسکریپت نویسی برای این منظور دارد.

ماهیت این مکانیسم به شرح زیر است: شما مجموعه ای از دستورات مورد نیاز خود را می نویسید و آن را به عنوان یک اسکریپت ذخیره می کنید - این یک فایل متنی ساده با پسوند .PS1 است.

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

مهم!

به طور پیش فرض اجرای اسکریپت ها در ویندوز ممنوع است! برای مشاهده سیاست اجرای اسکریپت، cmdlet را اجرا کنید Get-ExecutionPolicy. در نتیجه، سیاست فعلی را برمی گرداند، به عنوان مثال:

  • محدود - اجرای هر اسکریپت مسدود شده است ( مقدار پیش فرض);
  • AllSigned – اجرای اسکریپت هایی که دارای امضای دیجیتال هستند مجاز است.
  • RemoteSigned - اجرای اسکریپت های محلی مجاز است، همه اسکریپت های دانلود شده باید دارای امضای دیجیتال باشند.
  • بدون محدودیت - اجرای هر اسکریپت مجاز است ( توصیه نمی شود زیرا ناامن است!).

برای فعال کردن اسکریپت ها برای اجرا، باید از cmdlet استفاده کنید Set-ExecutionPolicyبا یکی از پارامترهای بالا

به عنوان مثال، برای اجازه دادن به اسکریپت های محلی، دستور زیر را اجرا کنید و با فشار دادن Y تغییرات را بپذیرید.

Set-ExecutionPolicy RemoteSigned

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

Windows PowerShell مکانیزمی را برای ایجاد توابع خود ارائه می دهد که مانند cmdlet های داخلی می توانند در پوسته PowerShell استفاده شوند.

برای این کار باید مشخص کنید کلمه کلیدیتابع و سپس در پرانتزهای فرفری () الگوریتم این تابع را بنویسید، i.e. مجموعه دستورات ( به عنوان مثال، برخی از روش های پرکاربرد: ایجاد یک کاربر با حقوق خاص، پاک کردن فهرست های خاص، و غیره). سپس باید همه اینها را در یک اسکریپت ذخیره کنید، اما فقط با پسوند .psm1، زیرا این فایل قبلاً یک ماژول خواهد بود.

این همه چیز نیست، این فایل باید در دایرکتوری قرار گیرد که PowerShell به دنبال ماژول ها است. چندین دایرکتوری از این قبیل وجود دارد ( دایرکتوری ویژه در نمایه کاربر، دایرکتوری که PowerShell در آن نصب شده است، آنها را می توان در متغیرهای محیطی PowerShell مشاهده کرد. برای این کار دستور زیر را اجرا کنید

Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize

هنگامی که ماژولی را که نوشتید در یک دایرکتوری خاص قرار دادید، می توانید به توابع خود مانند دستورات عادی PowerShell دسترسی داشته باشید.

محیط اسکریپت یکپارچه Windows PowerShell (ISE)

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

شما می توانید آن را به این صورت اجرا کنید:

  • در ویندوز 7 - Start -> All Programs -> Accessories -> Windows PowerShell -> Windows PowerShell ISE.
  • در Windows 10 یا Windows Server 2016 - Start->All Programs -> Windows PowerShell Directory ( در گروه W) -> Windows PowerShell ISE.

توجه داشته باشید! ISE روی آن کار نخواهد کرد سیستم ویندوزسرور در نسخه Server Core نصب شده است.

تصویری از محیط اسکریپت یکپارچه پاورشل (ISE) در ویندوز سرور 2016

این همه برای من است، امیدوارم مطالب برای شما مفید بوده باشد! موفق باشید!

اجرای یک برنامه از PowerShell

وظیفه اجرای هر فایل اجرایی (برنامه یا ابزار خط فرمان) از PowerShell اغلب اتفاق می افتد. PowerShell چندین گزینه برای این ارائه می دهد. به طرق مختلف، که در ادامه این مقاله به آن خواهیم پرداخت. بیایید با ساده ترین ...

راه اندازی مستقیم

ساده ترین راه برای اجرای یک فایل اجرایی در PowerShell این است که به دایرکتوری حاوی فایل بروید و مستقیماً آن را اجرا کنید. به عنوان مثال، بیایید یک برنامه ساده را انتخاب کنیم که یک تبریک را نمایش می دهد و آن را با دستور اجرا می کنیم:

Set-Location ″C:\Program Files″
.\Hello.exe

لطفا توجه داشته باشید که حتی اگر در دایرکتوری مورد نظر قرار دارید، باید مسیر نسبی فایل اجرایی را مشخص کنید. استثنا فایل های فهرست شده در فهرست هستند متغیر محیطی(مسیر). به عنوان مثال، برنامه‌ها و ابزارهای داخلی مختلف (notepad، calc، ping و غیره) که در فهرست Windows\System32 قرار دارند، می‌توانند بدون تعیین مسیر راه‌اندازی شوند.

اپراتور &

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

& 'C:\Program Files\Hello.exe'

از آنجایی که عملگر & فرمان ارسال شده را تجزیه نمی کند، نمی تواند پارامترهای آن را تفسیر کند. بنابراین، پارامترهای/آرگمون های اضافی نیز به عنوان متن، در نقل قول ارسال می شوند. به عنوان مثال، بیایید برنامه قبلی را در نظر بگیریم و کمی آن را تغییر دهیم تا متن مورد نظر را به عنوان آرگومان بپذیرد:

& 'C:\Program Files\Hello.exe' 'Hello, World'

در صورت تمایل، می توانید چندین آرگومان را که با کاما از هم جدا شده اند، مشخص کنید:

& 'C:\Program Files\Hello.exe' 'Hello,', ' world'

برای راحتی، دستور و آرگومان ها را می توان در متغیرها قرار داد:

$exe = 'C:\Program Files\Hello.exe'
$arg1 = 'سلام'
$arg2 = "جهان"
& $exe $arg1 $arg2

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

$exe = 'C:\Program Files\Hello.exe'
$allargs = @(«سلام،»، «جهان»)
& $exe $allargs

فراخوانی-بیان

cmdlet Invoke-Expression تقریباً مانند عملگر & کار می کند - یک رشته متن را می گیرد و آن را به عنوان یک دستور اجرا می کند. مثلا:

Invoke-Expression -Command 'C:\Windows\Hello.exe'

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

Invoke-Expression -Command 'C:\Program Files\Hello.exe'

این ویژگی استفاده از cmdlet را بسیار ناخوشایند می کند. اگر چه، در صورت لزوم، می توان از چنین خطاهایی با استفاده از نقل قول های اضافی جلوگیری کرد، به عنوان مثال مانند این:

Invoke-Expression -Command ″C:\'Program Files'\Hello.exe″

شروع-فرآیند

cmdlet Start-Process شروع می شود فایل مشخص شدهبه عنوان یک فرآیند با استفاده از روش شروع کنیدکلاس دات نت روند. مثلا:

Start-Process -FilePath 'C:\Program Files\Hello.exe'

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

Start-Process -FilePath 'C:\Program Files\Hello.exe' -NoNewWindow -صبر کنید

Start-Process همچنین به شما اجازه می دهد تا آرگومان های اضافی را به فرآیند ارسال کنید:

Start-Process -FilePath 'C:\Program Files\Hello.exe' -ArgumentList 'Hello, world' -NoNewWindow -صبر کنید

به‌طور پیش‌فرض، cmdlet چیزی بر نمی‌گرداند، اما می‌توانید از پارامتر -PassThru برای وادار کردن آن به بازگرداندن یک شیء پردازشی استفاده کنید. قرار دادن این شی در یک متغیر بسیار راحت است:

$process = Start-Process -FilePath 'C:\Program Files\Hello.exe' -Wait -PassThru

پس از آن می توانید بسیاری از چیزهای مفید را یاد بگیرید، مانند وضعیت:

$process.HasExited

$process.ExitTime

یا کد اجرایی:

$process.ExitCode

.خالص

در اصل، کلاس .NET Process را می توان مستقیماً بدون cmdlet Start-Process استفاده کرد. به عنوان مثال، می توانید فرآیند را با دستور زیر شروع کنید:

::شروع('C:\Program Files\Hello.exe')

این روش کاملاً ناخوشایند و دست و پا گیر است (به نظر من)، اما در استفاده کمی انعطاف پذیرتر است. به عنوان مثال، بیایید برنامه خود را در پنجره فعلی اجرا کنیم، آرگومان ها را به آن ارسال کنیم و نتیجه اجرا را بگیریم:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″سلام، جهان″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

تقریباً می توانید هر کاری را با WMI انجام دهید، از جمله اجرای یک برنامه. روش برای این کار کاملاً مناسب است ايجاد كردنکلاس WMI Win32_Process.این روش فرآیندی را روی یک ماشین محلی یا راه دور از طریق RPC شروع می کند. به عنوان مثال، برای اجرای یک برنامه در کامپیوتر محلیمی توانید از این دستور استفاده کنید:

()″Win32_Process″).Create('C:\Program Files\Hello.exe')

و برای اجرا در یک کامپیوتر راه دور، دستور به شکل زیر خواهد بود:

()″\\Remotecomputer\root\cimv2:Win32_Process″).Create('C:\Program Files\Hello.exe')

همچنین می توانید از cmdlet Invoke-WmiMethod استفاده کنید:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

یا از cmdlet Invoke-CimMethod استفاده کنید:

Invoke-CimMethod -ClassName Win32_Process -MethodName ایجاد -Arguments @(CommandLine=″C:\Program Files\Hello.exe″)

WMI فرآیند را در یک پنجره جداگانه اجرا می کند و یک شی حاوی شناسه فرآیند (ProcessID) و نتیجه اجرا (ReturnValue) را برمی گرداند. ReturnValue می تواند مقادیر زیر را داشته باشد:

0 - تکمیل موفقیت آمیز
2 - دسترسی ممنوع است
3 - امتیاز ناکافی
8 - شکست ناشناخته
9 - مسیر پیدا نشد
21 - پارامتر نامعتبر

فراخوانی-فرمان

cmdlet Invoke-Command می تواند دستورات را بر روی یک کامپیوتر محلی یا راه دور با استفاده از WinRM اجرا کند. به عنوان مثال، برای اجرای برنامه خود در رایانه محلی از دستور زیر استفاده می کنیم:

Invoke-Command -ScriptBlock (″C:\'Program Files'\Hello.exe″)

در صورت لزوم، می توانید آرگومان هایی را به برنامه ارسال کنید:

Invoke-Command -ScriptBlock (C:\'Program Files\Hello.exe ″Hello,world″)

لطفاً توجه داشته باشید که Invoke-Command با فضاها خیلی دوستانه نیست، بنابراین برای جلوگیری از خطاها باید در نقل قول ها خلاق باشید. با این حال، می توان از چنین مشکلاتی جلوگیری کرد، به عنوان مثال، با ترکیب استفاده از cmdlet با عملگر &:

Invoke-Command -ScriptBlock (& ​​'C:\Program Files\Hello.exe')

Invoke-Command عمدتاً برای کنترل از راه دور استفاده می شود؛ مزیت اصلی آن توانایی اجرای همزمان بر روی چندین رایانه است. مثلا:

Invoke-Command -ScriptBlock (″C:\'Program Files'\Hello.exe″) -ComputerName SRV1,SRV2,SRV3

$scriptblock = (″C:\'Program Files'\Hello.exe″)
$Computers = @('SRV1','SRV2','SRV3')
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

به طور پیش‌فرض، cmdlet نتیجه اجرای برنامه را برمی‌گرداند و اگر آن را در پس‌زمینه اجرا کنید (پارامتر -AsJob)، یک شی Job را برمی‌گرداند:

Invoke-Command -ScriptBlock (C:\'Program Files\Hello.exe) -ComputerName localhost -AsJob -JobName Hello

Invoke-Item

cmdlet Invoke-Item برای اعمال یک عمل پیش فرض بر روی یک فایل طراحی شده است. بنابراین می توانید فایل اجرایی را با دستور زیر اجرا کنید:

Invoke-Item -Path ″C:\Program Files\Hello.exe″

با این حال، استفاده از Invoke-Item برای باز کردن نوع خاصی از فایل راحت‌تر است. به عنوان مثال، نحوه باز کردن یک فایل متنی به این صورت است:

Invoke-Item -Path ″C:\Files\test.txt″

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

Invoke-Item -Path ″C:\Files\*.txt″

CMD

خوب، در پایان، راه دیگری برای راه اندازی یک برنامه از PowerShell استفاده از پوسته cmd است. این روش کاملاً "غیر مستقیم" است، اما با این وجود کار می کند. دستور زیر یک نمونه جدید از cmd را شروع می کند و در آن اجرا می شود برنامه مشخص شده، از cmd خارج می شود و نتیجه را برمی گرداند:

cmd /c ″C:\Program Files\Hello.exe″

PoSh راه های زیادی برای راه اندازی یک برنامه ارائه می دهد. و هر کدام از آنها برای موقعیت های خاصی خوب است.

به هر حال، مقاله بر اساس PowerShell: Deep Dive و Best Practice نوشته شده است. خواندن آن را توصیه می کنم، هنوز چیزهای جالب زیادی وجود دارد.

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

  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 -file<имя_скрипта> (مثال: powershell -file myscript.ps1)

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

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

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

Set-ExecutionPolicy RemoteSigned -Scope Process

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

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

هر دو روش سیاست را فقط برای جلسه فعلی تنظیم می کنند، در حالی که سیاست امنیتی برای اجرای اسکریپت های 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"، پارامترهای لازم را اضافه کنید.

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

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