با این دستورات کاربردی Windows PowerShell را بهتر بشناسید.
اکثر ما PowerShell را به دلیل قابلیت های اتوماسیون آن ترجیح می دهیم. این یک پوسته خط فرمان با یک زبان برنامه نویسی کاملاً توسعه یافته است. می توانید از cmdlet های داخلی استفاده کنید یا اسکریپت خود را بنویسید تا وظایف اداری ویندوز و سایر سیستم عامل های سازگار را خودکار کنید. این به شما امکان می دهد هر کاری را که می توانید با برنامه های رابط کاربری گرافیکی و موارد دیگر انجام دهید، انجام دهید.
با این حال، تسلط بر عملکرد و انعطاف پذیری PowerShell شامل یک منحنی یادگیری شیب دار است. اگر به تازگی با PowerShell شروع کرده اید، در اینجا دستورات ضروری برای تسلط بر این زبان برنامه نویسی در دراز مدت وجود دارد.
1. دریافت کمک
Get-Help، همانطور که از نام آن پیداست، بخشی از سیستم کمکی یکپارچه PowerShell است. این به شما کمک می کند اطلاعات لازم برای دستورات، مفاهیم و توابع را پیدا کنید، نام مستعار، اسکریپت ها و موارد دیگر را شناسایی کنید.
برای دریافت راهنمایی برای cmdlet PowerShell، باید از cmdlet Get-help و به دنبال آن نام cmdlet استفاده کنید. به عنوان مثال، برای مشاهده خلاصه و نحو مرتبط با cmdlet get-process، تایپ کنید:
Get-HelpGet-Process
این دستور میتواند کمکهای مبتنی بر نظر و XML را که توسط نویسنده تابع ارائه شده است را بخواند.
از طرف دیگر، میتوانید از دستور Get-Help -online برای دریافت کمک آنلاین برای cmdlet PowerShell استفاده کنید. به عنوان مثال، برای مشاهده مستندات آنلاین مایکروسافت برای cmdlet Get-Content، تایپ کنید:
Get-HelpGet-Content -online
2. Get-Process
دستور Get-Process به شما کمک می کند تا لیستی از تمام فرآیندهای فعال سیستم را با شناسه (ID) بازیابی و نشان دهید. می توانید از آن به عنوان یک جایگزین کارآمد برای Windows Task Manager برای مشاهده، توقف و راه اندازی مجدد فرآیندهای سیستم استفاده کنید.
به عنوان مثال، اگر نیاز به توقف فرآیند GameBar دارید، ابتدا باید شناسه فرآیند مرتبط با آن را پیدا کنید. بنابراین، تایپ کنید:
Get-Process
این دستور تمام فرآیندهای در حال اجرا سیستم را نشان می دهد. سپس، شناسه مرتبط با فرآیندی را که میخواهید متوقف کنید، پیدا کنید. برای توقف فرآیند، تایپ کنید:
Get-Process -ID 20496 | Stop-Process
در اینجا -ID 20496 شناسه فرآیند (GameBar) است که می خواهید متوقف شود.
3. شروع فرآیند
می توانید از cmdlet Start-Process در PowerShell برای شروع یک یا چند فرآیند در یک رایانه محلی استفاده کنید. برای استفاده از cmdlet، Start-Process و سپس نام فرآیند را تایپ کنید. به عنوان مثال، اگر می خواهید یک فرآیند دفترچه یادداشت جدید را شروع کنید، تایپ کنید:
Start-Process notepad
علاوه بر این، می توانید از پارامترهای Start-Process برای تعیین گزینه ها استفاده کنید. به عنوان مثال، اگر می خواهید فرآیندی را به عنوان مدیر راه اندازی کنید، تایپ کنید:
Start-Process -FilePath "notepad" -Verb runAs
4. دریافت فرمان
Get-Command به شما امکان می دهد تمام دستورات PowerShell نصب شده بر روی رایانه خود را مشاهده کنید. مشابه Get-Help، می توانید از Get-Command و به دنبال آن یک عبارت جستجو برای یافتن دستورات برای یک ویژگی خاص استفاده کنید.
از آنجایی که Get-Command همه دستورات را نمایش می دهد، می توانید پارامترهایی را برای یافتن ویژگی هایی با نام و CommandType خاص مشخص کنید. به عنوان مثال، برای پیدا کردن cmdlets (CommandTypes) که با A (Name) شروع می شوند، تایپ کنید:
Get-Command -Name A* -CommandType cmdlet
یا برای مشاهده نمونه های بیشتر، Get-Help Get-Command -Examples را تایپ کنید.
5. دریافت خدمات
Get-Service cmdlet به شما امکان می دهد وضعیت رایانه و لیست خدمات خود را مشاهده کنید. به طور پیشفرض، دستور Get-Service تمام سرویسهای (توقف و در حال اجرا) را برمیگرداند.
می توانید از پارامترها برای تعیین و یافتن سرویس ها بسته به وضعیت، نام و سرویس های وابسته استفاده کنید. به عنوان مثال، برای مشاهده تمام سرویس هایی که با نام Win شروع می شوند، تایپ کنید:
Get-Service -Name "Win*"
6. Get-ChildItem
می توانید از PowerShell برای جستجو در فهرست ها استفاده کنید. دستور Get-ChildItem یک cmdlet مفید برای جستجوی پوشه ها و فایل ها و انجام سریع جستجوهای مبتنی بر محتوا بدون استفاده از File Explorer است.
برای مشاهده تمام پوشه های سطح بالا در دایرکتوری C:\، تایپ کنید:
Get-ChildItem "C:\"
علاوه بر این، از پارامتر -Path برای مشاهده یک پوشه، زیر پوشه ها و محتوای خاص استفاده کنید. به عنوان مثال، برای مشاهده همه زیر پوشه ها و فایل های موجود در پوشه Programs Files، تایپ کنید:
Get-ChildItem -Path "C:\Program Files"
علاوه بر این، از پارامتر -Recurse برای مشاهده همه فایلها در پوشه مشخص شده و از پارامتر -Name برای مشاهده نام آیتمها در یک فهرست استفاده کنید.
Get-ChildItem -Path "C:\Program Files\Fodler_Name" -Recurse | Select FullName
در دستور بالا، زیر پوشه را با نام پوشه جایگزین کنید تا محتوای آن را مشاهده کنید.
7. کپی مورد
Copy-Item cmdlet به شما این امکان را می دهد که فایل ها و پوشه ها و محتویات آنها را در دایرکتوری دیگری کپی-پیست کنید. برای کپی کردن فایلها و پوشهها، Copy-Item را تایپ کنید و سپس منبع -Path، پارامتر -Destination و آدرس مقصد را تایپ کنید. به عنوان مثال، برای کپی کردن E:\Folder1 و محتویات آن در E:\Folder2، تایپ کنید:
Copy-Item "E:\Folder1" -Destination "E:\Folder2" -Recurse
توجه داشته باشید که پارامتر -Recurse در دستور بالا وظیفه جابجایی تمامی محتویات پوشه را بر عهده دارد. بدون آن، PowerShell فقط پوشه سطح بالا (Folder1) و فایل های مشخص شده در دستور را کپی می کند.
8. انتقال آیتم
به طور مشابه، برای جابجایی یک آیتم، می توانید از cmdlet Move-Item استفاده کنید. به عنوان مثال، برای انتقال پوشه، فایلها، زیر پوشهها و تمام محتویات آن به مقصد مشخص شده، تایپ کنید:
Move-Item -Path "E:\Folder1" -Destination "E:\Folder2"
9. Remove-Item
Remove-Item cmdlet به شما امکان می دهد فایل ها، پوشه ها، توابع و سایر انواع داده ها را از دایرکتوری مشخص شده حذف کنید. به عنوان مثال، برای حذف فایل Test.txt در پوشه E:\Folder1، تایپ کنید:
Remove-ItemE:\Folder1\Test.txt
10. Get-Content
Get-Content cmdlet به شما امکان می دهد محتوای یک مورد را بدون استفاده از ویرایشگر متن مشاهده کنید. به عنوان مثال، برای بازیابی محتویات فایل Test.txt، تایپ کنید:
Get-Content "E:\Folder1\Test.txt"
همچنین می توانید طول محتوا را برای مشاهده با استفاده از پارامتر -TotalCount مشخص کنید.
11. Clear-Content
می توانید از cmdlet Clear-Content برای حذف محتویات یک فایل مشخص شده بدون حذف خود فایل استفاده کنید. برای اتوماسیون کار مفید است، جایی که شما یک نام فایل سخت کد شده دارید اما می خواهید هر بار که اسکریپت اجرا می شود یک فایل تمیز داشته باشید.
برای آزمایش دستور، یک فایل متنی با مقداری محتوا در آن ایجاد کنید. بعد تایپ کنید:
Clear-Content -Path "E:\Folder1\Test1.txt"
با این کار محتویات فایل بدون حذف فایل حذف می شود.
12. Set-ExecutionPolicy
سیاست اجرای پیش فرض در PowerShell روی Restricted تنظیم شده است. این امر از اجرای اسکریپت های مخرب در محیط PowerShell جلوگیری می کند. با این حال، هنگامی که یک اسکریپت محلی PowerShell را اجرا می کنید، ممکن است با خطای اجرای اسکریپت غیرفعال در این سیستم مواجه شوید.
cmdlet های Set-ExecutionPolicy به شما امکان می دهند سطوح امنیتی را برای اجرای اسکریپت تغییر دهید. برای اطلاع از خط مشی اجرایی فعلی خود، تایپ کنید:
Get-ExecutionPolicy
اگر نیاز به اجرای یک اسکریپت بدون امضا دارید، در یک فرمان PowerShell بالا، تایپ کنید:
Set-ExecutionPolicy RemoteSigned
سایر مقادیر معتبر Set-ExecutionPolicy عبارتند از Restricted، AllSigned و Unrestricted.
13. Set-Location
به طور پیش فرض، PowerShell از C:\Users\Username به عنوان دایرکتوری کاری پیش فرض استفاده می کند. cmdlet Set-Location به شما امکان می دهد دایرکتوری کاری فعلی را روی یک مکان مشخص تنظیم کنید. اگر می خواهید یک اسکریپت یا دستور را از یک مکان خاص بدون نیاز به تعیین مسیر هر بار اجرا کنید مفید است.
به عنوان مثال، برای تنظیم C:\Users\Username\Documents به عنوان فهرست کاری فعلی، تایپ کنید:
Set-Location "C:\Users\usrename\Documents"
این یک اقدام موقتی است زیرا PowerShell پس از راه اندازی مجدد دایرکتوری کاری را به فهرست پیش فرض خود بازنشانی می کند.
14. صادرات-CSV
اگر میخواهید خروجی PowerShell را به روشی سازمانیافتهتر صادر و ارائه کنید، میتوانید از Export-CSV cmdlet استفاده کنید. فایل خروجی را برای دستور مشخص شده می گیرد و به فایل CSV تبدیل می کند.
برای تست دستور، دستور زیر را امتحان کنید:
Get-Process | Export-CSV PSprocess.csv
دستور بالا یک فایل psporcess.csv با تمام داده های پردازش های فعال ایجاد می کند.
15. ConvertTo-HTML
اگر ترجیح می دهید یک گزارش HTML ایجاد کنید، می توانید از ConvertTo-HTML Cmdlet استفاده کنید. برای ایجاد یک گزارش HTML برای تمام فرآیندهای در حال اجرا در رایانه شخصی خود، تایپ کنید:
Get-Process | ConvertTo-HTML > PSprocess.html
در دستور بالا psprocess نام فایل صادراتی و HTML پسوند آن است. می توانید به فایل HTML صادر شده در دایرکتوری کاری فعلی که در C:\Users\username قرار دارد دسترسی داشته باشید.
16. Get-History
برای پیمایش در میان دستورات اخیراً اجرا شده در PowerShell میتوانید از کلید پیکان بالا به پایین استفاده کنید. با این حال، برای مشاهده لیستی از تمام دستورات اخیراً اجرا شده در جلسه فعلی خود به طور همزمان، می توانید از cmdlet Get-History استفاده کنید.
لیستی از تمام دستورات اخیراً اجرا شده با شناسه آنها نمایش داده می شود. اگر می خواهید متن کامل دستورات قبلاً اجرا شده را مشاهده کنید مفید است. برای انجام این کار، تایپ کنید:
Get-History Id | fl
به عنوان مثال، برای مشاهده جزئیات اجرا مانند وضعیت، زمان شروع و پایان و مدت زمان دستور سوم، تایپ کنید:
get-history 3 | fl,
برای اجرای مجدد هر دستوری از لیست، تایپ کنید:
Invoke-History followed by the command id
به عنوان مثال، Invoke-History 3 را تایپ کنید تا دستوری را که قبلاً اجرا شده است، بدون اینکه دوباره تایپ کنید، اجرا کنید.
علاوه بر این، از Clear-History برای پاک کردن تاریخچه جلسه جاری استفاده کنید.
اکنون که یک ایده اولیه از دستورات PowerShell دارید، پیش بروید و راهنمای ما در مورد بهترین PowerShell Cmdlets را برای بهبود مهارت های مدیریت ویندوز خود بررسی کنید. در اینجا، میتوانید کار با دادهها را با استفاده از cmdletها، قالببندی جداول و فهرست و یک نمای کلی از دستور Get-Member یاد بگیرید.
دستورات PowerShell برای ساده کردن وظایف شما
PowerShell به دلیل قابلیت های اتوماسیون خود شناخته شده است. این می تواند به شما کمک کند صدها فعالیت را در کار توسعه خود به طور خودکار انجام دهید تا در زمان صرفه جویی کنید و بهره وری را بهبود بخشید.
در حالی که ما فقط دستورات اساسی را پوشش داده ایم، سعی کنید نحو، نام مستعار و متغیرها را بررسی کنید، توابع موجود در بسیاری از این دستورات را برای تسلط بر این زبان برنامه نویسی بسیار کارآمد بررسی کنید.