چه کسی آرزو نمی کند که آنها بتوانند یک جادوگر باشند و چند کلمه را بیان کنند تا اتفاقات جادویی رخ دهد؟ خوب ، ما نمی توانیم به شما نشان دهیم که چگونه یک جادوگر باشید ، اما می توانیم به شما نشان دهیم که چگونه کمی جادوی رایانه را انجام دهید.
اگر یک رایانه ویندوز با ویندوز 7 در آن دارید ، PowerShell دارید. همچنین ، اگر با آن ویندوز 7 رایانه ای دارید ، لطفاً آن را به خاطر امنیت به روز کنید.
اما این مقاله فقط برای افراد ویندوز نیست. آخرین نسخه PowerShell رایگان است و در رایانه های Mac و Linux قابل نصب و استفاده است.
این مهم است زیرا آنچه که شما در مورد PowerShell می آموزید تقریباً در هر رایانه ای قابل استفاده است. چه کسی می داند؟ شما ممکن است این مهارت را به سطح بعدی برسانید و در زمینه فناوری اطلاعات به یک حرفه بپردازید.
PowerShell چیست؟
پاسخ پیشرفته مایکروسافت این است که این یک است ، " ... پوسته خط فرمان مخصوصاً برای سرپرستان سیستم طراحی شده است. "صدا را ارعاب می کند. اما اینطور نیست آیا از رایانه خود مراقبت می کنید؟ بله ، پس شما مدیر سیستم در خانه خود هستید.
آیا به رایانه خود می گویید که با کلیک و کلید ، چه کاری انجام دهد؟ بله ، بنابراین به پوسته خط فرمان فقط به عنوان پنجره دیگری فکر کنید که موارد را تایپ می کنید تا به رایانه بگویید چه کاری انجام دهد. شما می توانید این کار را انجام دهید.
In_content_1 همه: [300x250] / dfp: [640x360]->PowerShell مانند یک زبان برنامه نویسی است ، اما بیشترین رمزنگاری نیست. این واقعاً چیزهای زیادی مثل انگلیسی معمولی می خواند ، چیزی که مایکروسافت برای آن تلاش کرد تا بتوان آن را توسط برنامه نویسان غیر برنامه برداشت.
این یک راه نوشتن چند خط از دستورات به نام اسکریپت است که باعث می شود سیستم عامل ویندوز کاری را انجام دهد که شما می خواهید انجام دهد. سپس می توانید آن خطوط را در یک پرونده ذخیره کنید و با یک کلیک آن را اجرا کنید یا برنامه ریزی کنید تا به صورت دوره ای اجرا شود.
با PowerShell چه کاری می توانید انجام دهید؟
نقطه سطح بالا PowerShell این است که بتواند وظایف را به صورت خودکار انجام دهد ، بنابراین نیازی نیست وقت خود را به طور مکرر در انجام کارهای دنیوی تلف کنید. برای یک مدیر سیستم حرفه ای ، این می تواند چیزی مانند ایجاد کاربران جدید ، ایجاد رمزهای عبور برای آنها و ارسال نامه الکترونیکی با جزئیات به سرپرست جدید آنها باشد.
انجام شده با کلیک و تایپ دستی می تواند 5 دقیقه طول بکشد تا بیشتر از یک ساعت یا بیشتر. با وجود اسکریپت های مناسب ، مدیر سیستم ممکن است حتی مجبور به انجام بخشی از آن نباشد.
اما می خواهید بدانید که می توانید با PowerShell در خانه چه کاری انجام دهید. هر کاری را که دوست ندارید دوباره و دوباره انجام دهید بسیار زیبا است. با حذف پرونده های موقت و ورود به سیستم که نیازی به آن ندارید ، از آن استفاده کنید تا در هارد دیسک فضای خود را آزاد کنید.
یک کامپیوتر شخصی را روی رایانه کودک خود قرار دهید. مجموعه ای از پرونده ها را تغییر نام دهید یا سازماندهی کنید. این زیبایی PowerShell است. تقریباً هر کاری را که می توانید در رایانه خود انجام دهید ، می توانید یک اسکریپت PowerShell ایجاد کنید تا با کلیک یا برنامه زمانبندی خودکار شود.
چگونه می توان از PowerShell استفاده کردم؟
ساده ترین راه برای کار با PowerShell در محیط نگارش مجتمع PowerShell (ISE)است. می توانید با کلیک روی Start و تایپ کردن powerhell iseدر نوار جستجو در ویندوز 10. شما باید آن را مطابق شکل زیر مشاهده کنید.
برای اولین بار که از آن استفاده می کنیم ، می خواهیم آن را به عنوان سرپرست اجرا کنیم. برای انجام این کار ، ابتدا باید از حق رایانه در رایانه خود برخوردار باشید. در منوی شروعخود ، روی PowerShell ISEکلیک راست کرده ، سپس روی اجرای به عنوان مدیرکلیک کنید.
ممکن است UserAccess Control(UAC) با هشدار بازشونده از این سوال که آیا مطمئن هستید که می خواهید نتیجه گیری کنید یا خیر ، هشدار داد. بر روی بلهکلیک کنید.
اکنون به دنبال PowerShell IDE هستید. قسمت بالای پنجره (1)صفحه اسکریپت است. اینجاست که فیلمنامه خود را خواهید نوشت. قسمت پایین پنجره (2)قسمت کنسول است. وقتی اسکریپت خود را تست می کنید ، خروجی این صفحه را مشاهده خواهید کرد.
این هم در جایی است که پیام های خطایی و مواردی از این دست را مشاهده می کنید که به شما کمک می کند اسکریپت های خود را بهتر و بهتر کنید. صفحه سمت راست پنجره (3)افزودنی فرمان است. فکر کنید آن را به عنوان یک فرهنگ لغت از تمام دستورات PowerShell در دسترس شما قرار داده است.
PowerShell تنظیم شده است که هیچ اسکریپتی را غیر از نسخه های قبلی Windows اجرا نمی کند. باید آن را تغییر دهید تا بتوانید اسکریپت های مربوط به شهر خود را اجرا کنید.
در پنجره اسکریپت ، موارد زیر را کپی و چسباندن کنید:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExociationPolicyبه بخشی از آن cmdlet (دستور فرمان تلفظ شده) گفته می شود. Cmdlets چیزهای قدرتمندی هستند. از آنها به عنوان دستورات کوتاه فکر کنید که می توانید به ویندوز بدهید و ویندوز مجموعه ای از موارد پیچیده تر را برای برآورده کردن دستور شما انجام می دهند.
یک قیاس به بچه شما می گوید اتاق خود را تمیز کند. مختصر و مفید. اگر کودک شما در تمیز کردن اتاق ها از مهارت کافی برخوردار است ، می رود و می خواهد تختخواب خود را بسازد ، لباس های شسته شده خود را درون سبد قرار داده ، اسباب بازی ها و کتاب های خود را قفسه بندی کرده و حتی ممکن است کف آن را خالی کند. آنها می دانند که cmdlet Clean-YourRoom به معنای همه این موارد است.
در بالای پنجره ، یک فلش سبز رنگ را مشاهده خواهید کرد. برای اجرای دستور روی آن کلیک کنید.
- بخشی از ExceptionPolicyدر حال گفتن به "تنظیم-اجرای" پولیاست که چه سیاستی را باید تنظیم کند. این یک پارامتر است در حال گفتن است ، "من می خواهم كه شما در این رهنمودها كار كنید و به طور خاص این كار را انجام دهید. به آن می گوید که از خط مشی خاص RemoteSigned استفاده کند.
خط مشی RemoteSignedمی گوید PowerShell ممکن است اسکریپتی را که از اینترنت بارگیری شده است ، اجرا یا اجرا نکند ، مگر اینکه توسط یک ناشر قابل اعتماد امضا شده باشد.
در یک راه دور ، به PowerShell می گوید که خوب است هرگونه اسکریپت ایجاد شده در محلی را اجرا کنید ، زیرا لازم نیست آن ها توسط یک ناشر قابل اعتماد از راه دور امضا شوند. اکنون ، اسکریپت PowerShell شما قادر خواهد بود هر اسکریپتی را که می نویسید روی رایانه خود اجرا کنید.
بگذارید برای حذف پرونده های موقتی به اسکریپتی نگاه کنیم. به اندازه CCleaner قدرتمند و کامل نیست ، اما CCleaner با مجموعه ای از مشکلات خاص خود همراه است.
از PowerShell برای ایجاد فضا در هارد دیسک خود استفاده کنید.
ما این اسکریپت را تجزیه خواهیم کرد ، خط به خط ، بنابراین شما می توانید ببینید که چگونه کار می کند. در پایان ، اسکریپت به طور کامل نشان داده می شود ، بنابراین می توانید در صورت تمایل آن را کپی کرده و در آن جایگذاری کنید. . به آن فکر کنید مانند یک کیف پول برای قرار دادن چیزهای با ارزش. کیف پول به ما یادآوری دلار است ، اشیاء با ارزش به نظر متغیر است ، بنابراین ما نیز این را به یاد خواهیم آورد. ما کیف پول یا متغیری را با نام $ TempFileLocationایجاد می کنیم. علامت مساوی به PowerShell می گوید چه چیزی را در آن متغیر قرار دهید.
در این حالت ، ما مکان فایل های موقتی ویندوز را قرار می دهیم - C: \ Users \ username \ AppData \ محلی \ Temp \ *. ما این کار را به دو دلیل انجام می دهیم؛ این یک مکان است که همیشه برای حذف پرونده ها بی خطر است ، و ما قصد داریم از آن استفاده کنیم تا به PowerShell بگوییم که باید برای حذف پرونده ها به کجا بروید.
در جایی که می گوید نام کاربری را در آن قرار دارد ، آن را برای کاربر خود جابجا کنید. نام. این نام کاربری است که شما برای ورود به رایانه خود استفاده می کنید. ستاره (*) در انتهای کارت یک کارت وحشی است. آنچه در پوشه Temp نمایش داده می شود ، زیرا همه چیز در پوشه Temp موقتی است و می خواهیم آن را حذف کنیم.
نقل قول های مضاعف در اطراف محل نیز مهم هستند. PowerShell می گوید که آنچه در آن است رشته ای است. از رشته به عنوان یک حرف و حروف متن استفاده کنید. اگر اعداد عادی بودند ، ما از داستان های دیگر استفاده نمی کنیم.
$TempFile = Get-ChildItem $TempFileLocation -Recurse
ما متغیر دیگری را ایجاد می کنیم. این بار می خواهیم از یک دستورالعمل استفاده کنیم تا متغیری $ $ TempFileرا وارد کنیم.
Get-ChildItem
مورد دیگری که توجه به cmdlets مانند Get-ChildItemاین است که کاملاً قابل خواندن است. ببینید چگونه کلمه اول فعل است؟ cmdlets همه با کلمات عملی شروع می شوند ، بنابراین شما بلافاصله می دانید چه کاری انجام می دهد. ChildItem دو اسم است.
قسمت دوم cmdlet همیشه به ما می گوید PowerShell چه عملی را اعمال خواهد کرد. ChildItem به معنی همه فرزندان یک مکان والدین است. این مانند این است که می گویند تمام پرونده هایی را که در یک پوشه قرار دارند دریافت کنید ، پرونده هایی که بچه ها هستند و پوشه پدر و مادر هستند.
cmdlet چه مواردی را برای کودک دریافت می کند؟ همه چیز در متغیر $ TempFileLocationاست. PowerShell قصد دارد به محلی که قبلاً $ TempFileLocation در آن قرار داده ایم برویم و تمام موارد کودک موجود در آن را دریافت کنید. سپس ، آنها را در متغیر $ TempFileقرار می دهد.
بنابراین ، با قسمت -آزمایشچه ارتباط دارید؟ به دریافت-ChildItemمی گوید که همه چیز را در آن مکان طی کنید. فقط پرونده ها را در پوشه والدین دریافت نکنید. اگر پوشه هایی در آن پوشه وجود دارد ، به همه فرزندانشان نیز ، و فرزندانشان و غیره دسترسی پیدا کنید. ما می خواهیم همه آنها را بدست آوریم.
$TempFileCount = ($TempFile).count
بله ، ما یک متغیر سوم به نام $ TempFileCountرا ایجاد می کنیم و می خواهیم یک عدد را در آن متغیر قرار دهیم. شماره کجاست؟ خوب ، ($ TempFile) .countقصد دارد این شماره را برای ما بدست آورد. احتمالاً فهمیدید که قسمت .count شمارش همه پرونده هایی را که ما فقط در $ TempFile ذخیره کرده ایم انجام می دهد.
چرا این کار را کردیم؟ بیشتر به این دلیل خوب است که بدانیم چند پرونده بی فایده را با بقیه اسکریپت پاک می کنیم تا بتوانیم بگوییم که چقدر مؤثر بوده است.
if($TempFileCount -eq 0)
اکنون ما تنظیم می کنیم بیانیه شرطی. می بینید که این سؤال است "آیا". اگر چه؟ اگر چیزی در براکت ها درست یا نادرست است. براکت ها مهم هستند ، در غیر این صورت اگر نمی داند چه چیزی را مقایسه کنیم. در اینجا ، این سؤال مطرح می شود که آیا عدد ما در $ TempFileCountرا ذخیره کردیم برابر با صفر است.
-eqمرجع برابری است. این یک نوع عملگر مقایسه است. مثل این است که به بچه های خود بگویید ، "اگر اتاق شما تمیز ، عالی است ، ما می خواهیم کاری انجام دهیم ..." این گفته می گوید اگر شماره ای که در $ TempFileCount ذخیره شده است برابر است با صفر چیز بعدی را انجام دهید.
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
این چیزی است که اتفاق می افتد اگر $ TempFileCountصفر باشد. براکت های فرفری مهم هستند. آنها به PowerShell می گویند فقط در صورتی که $ TempFileCount برابر با صفر باشد ، فقط آنچه را در درون خود دارد انجام دهد.
برای میزبان یا صفحه می نویسد: "هیچ پرونده ای در پوشه C وجود ندارد: \ Users \ نام کاربری \ Appdata \ محلی \ Temp \ *". پارامتر در پایان ، - ForegroundColorبه PowerShell می گوید که متن را سبز کند. این فقط باعث می شود تمایز از پیام خطایی که به طور معمول قرمز است آسان تر شود.
Else
شما می دانید معنی دیگر چیست. این قسمت "اتاق شما بهتر است تمیز باشد یا دیگری ..." است که آیا کودک شما اتاق خود را تمیز کرده است یا خیر. چه اتفاقی می افتد اگر $ TempFileCountصفر نباشد.
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
این می گوید به مکان فعلی ذخیره شده در $ TempFileبروید >خط عمودی پس از آن لوله نامیده می شود. این کار مانند لوله ای از زندگی واقعی عمل می کند ، زیرا به PowerShell می گوید که محتویات $ TempFile را درون cmdlet قیف کند ، گویی که این آب به داخل ماشین لباسشویی می پیوندد. سپس cmdlet حذف موردآنچه می گوید را انجام می دهد؛ هر آنچه در آن مکان است حذف می کند.
پارامتر - چه کاریدر این مرحله بسیار مهم است. به PowerShell می گوید دستور را اجرا کند ، اما فقط آن را امتحان کنید ، هیچ چیزی را حذف نکنید. فقط به ما نشان دهید که اگر واقعاً این کار را می کردیم چه می شد.
این به شما امکان می دهد دستورات را بدون تغییر هر چیزی در رایانه خود آزمایش کنید. تا آنجا را ترک کنید تا زمانی که راحت باشید فیلم نامه کاری را که می خواهید انجام دهد و هیچ چیز دیگری انجام نخواهد داد. سپس فقط آن را حذف کنید و اسکریپت کار خود را انجام خواهد داد.
پارامتر تأیید: $ falseاسکریپت را از این سوال که آیا واقعاً می خواهید فایل را حذف کنید متوقف می کند. می دانید که -آزمایشچه کاری انجام می دهد. -WarningActionروی SilentlyContinueتنظیم شده است.
این کار باعث می شود اسکریپت درباره آنچه حذف می کنید ، به شما هشدار دهد. -ErrorActionروی SilentlyContinueتنظیم شده است تا در صورت بروز هر نوع خطایی در روند ، آن را فقط به ادامه راه چانه بزنید.
اکنون در اینجا هستیم آخرین خط.
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
دقیقاً مانند نوشتن-میزباناولین بار عمل کرد ، قرار است جمله زیر را تولید کند ، بنابراین می دانیم چه اتفاقی افتاده است . این به ما می گوید که چه تعداد پرونده از پوشه ای که تازه پردازش شده حذف شده است و آنرا به رنگ سبز انجام می دهیم تا بتوانید آن را آسان تر کنید.
بیایید به کلیت فیلم نامه نگاه کنیم:
$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count
if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}
می توانید این مورد را در PowerShell ISE خود کپی کرده و جایگذاری کرده و آن را به عنوان چیزی مانند Delete-TemporaryFiles.ps1ذخیره کنید. شما هم اکنون می توانید با نامگذاری cmdlet های دیگر که آنها را درک می کنید ، کنار هم باشید.
اگر کد به دلایلی برای شما کار نمی کند ، می توانید اسکریپت PowerShell را بارگیری کنید ما را ایجاد کرده و فقط آن را اجرا کنید. برای مشاهده پرونده اسکریپت ، ابتدا آن را از حالت فشرده خارج کنید.
هر زمان که می خواهید این اسکریپت را اجرا کنید ، کافی است روی آن کلیک راست کرده و اجرای با PowerShell را انتخاب کنید. یک کنسول PowerShell برای یک یا دو ثانیه پدیدار می شود ، در حالی که فیلمنامه شما کار خود را انجام می دهد ، و در صورت عدم وجود خطا ناپدید می شود.
از کجا می توانم PowerShell بیشتر بیاموزم؟
به نظر می رسد خیلی زیاد است! برای اولین اسکریپت PowerShell شما یک مقدار عادلانه است. اگر تاکنون این کار را کرده اید ، خود را تحسین کنید. امروز چیزهای زیادی آموخته اید ، اما اکنون می خواهید اطلاعات بیشتری کسب کنید. عالیه!
برای کسب اطلاعات بیشتر در مورد PowerShell منابع زیادی در اینترنت وجود دارد. مقاله خوبی است برای شروع مقاله "لیستی از برنامه های راه اندازی را از طریق Command Line یا PowerShell ایجاد کنید ". سپس این منابع دیگر را بررسی کنید: