خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

دستورات Windows PowerShell من بیشتر از آنها استفاده می کنم (و چرا آنها اینقدر مفید هستند)

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

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

PowerShell یک پوسته خط فرمان و زبان اسکریپت است. در حالی که نسخه های قبلی ویندوز یک برنامه اختصاصی PowerShell را ارائه می داد ، ترمینال ویندوز اکنون کنسول ترجیحی برای اجرای محیط های پوسته (از جمله PowerShell ، Command Prompt و سایر موارد) است.

همه این دستورات در هر دو برنامه مستقل PowerShell و در ترمینال ویندوز کار می کنند – برای استفاده از آنها ، یک برگه PowerShell را در ترمینال ویندوز باز کنید.

12

هلپ گرفتن

دستور راهنما را در PowerShell دریافت کنید

من PowerShell را از طریق فیلم های YouTube آموختم و یکی از اولین دستوراتی که همه ذکر کردند ، گله دریافت شد. همانطور که از نام آن پیداست ، Get-Help به شما کمک می کند تا اطلاعات مربوط به CMDlets PowerShell را به همراه نحو و پارامترهای آنها پیدا کنید. حتی نمونه هایی از استفاده را نیز ارائه می دهد.

برای دیدن نحوه عملکرد یک فرمان ، Get-Help را دنبال کنید و به دنبال آن نام فرمان:

Get-Help Get-Process

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

Get-Help Get-Process -Examples

این نمونه هایی از نحوه استفاده از cmdlet را به شما نشان می دهد. همچنین می توانید از آن برای یافتن اطلاعات بیشتر در مورد هر دستور از مستندات رسمی PowerShell مایکروسافت به صورت آنلاین استفاده کنید:

Get-Help Get-Process -Online

هنگامی که دستور فوق را اجرا می کنید ، PowerShell شما را به مستندات رسمی مایکروسافت برای این فرمان هدایت می کند.

11

از دست دادن

دستور فرمان را در PowerShell دریافت کنید

در حالی که Get-Help اطلاعات مفصلی در مورد CMDlet به شما می دهد ، Get-Command به شما کمک می کند تا تمام دستورات موجود را پیدا کرده و لیست کنید. به عنوان مثال ، اگر می دانید چه کاری می خواهید انجام دهید اما نمی توانید نام فرمان دقیق را به خاطر بسپارید ، Commmand به شما در یافتن دستورات بر اساس نام یا الگوهای جزئی کمک می کند.

به عنوان مثال ، بیایید سعی کنیم تمام دستوراتی را که حاوی فرایند کلمه هستند پیدا کنیم. نوع:

Get-Command *process*

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

Get-Command -Name Get* -CommandType Cmdlet

وقتی به دنبال دستورات مربوط به یک ماژول خاص هستید ، مانند شبکه:

Get-Command -Module NetTCPIP

Get-Command راهی بسیار کارآمدتر برای یافتن دستوراتی است که می خواهید از آنها استفاده کنید ، به جای راه اندازی مرورگر و جستجوی اینترنت.

10

تست و شبکه

فرماندهی تست NetConnection PowerShell

اگر از ابزارهای جداگانه ای برای پینگ ، telnet و traceroute استفاده می کنید ، cmdlet test-netconnection هر سه را انجام می دهد. این یک ابزار عیب یابی شبکه است که بررسی می کند که آیا مسئله ای با شبکه ، سرور یا جایی دیگر است.

برای بررسی اینکه آیا یک وب سایت قابل دسترسی است ، اجرا کنید:

Test-NetConnection makeuseof.com

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

Test-NetConnection server.company.com -Port 443

برای به دست آوردن اطلاعات دقیق مسیر شبکه ، می توانید در پایان از پارامتر -traceroute استفاده کنید. نوع:

Test-NetConnection 8.8.8.8 -TraceRoute

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

9

کودک

فرمان PowerShell ChildItem را دریافت کنید

Get-ChildItem پرونده ها و پوشه ها را در هر فهرست نشان می دهد. آیا می خواهید ببینید چه چیزی در اسناد وجود دارد؟ فقط این را تایپ کنید ، “نام کاربری” را با خود جایگزین کنید:

Get-ChildItem C:\Users\Username\Documents

برای یافتن پرونده های PDF اصلاح شده در هفته گذشته:

get -childitem c: \ user \ yourname \ document -filter *.pdf | Where-Object {$ _. LastWritEtime -gt (دریافت تاریخ) .DDDAYS (-7)

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

Get-ChildItem C:\Projects -Recurse -Filter *.log

هنگامی که در فضای کم دیسک کار می کنید ، می توانید از این کار برای یافتن پرونده های بزرگ بالاتر از 1 گیگابایت استفاده کنید:

Get -Childitem C: \ -recurs -file | Where -Object {$ _. طول -gt 1gb} | انتخاب کامل و نامحدود ، @{name = “sizegb” ؛ بیان = {$ _. طول/1gb}}

شما می توانید Get-ChildItem را با سایر دستورات برای اسکریپت و خودکار کردن وظایف برای پردازش دسته ای ، اتوماسیون و حسابرسی پرونده هایی که مطابق با معیارهای خاص هستند ، ترکیب کنید.

8

جایی که

جایی که فرمان شیء در PowerShell است

در مثال آخر ، شما ممکن است متوجه شده باشید که ما از cmdlet where-where برای یافتن پرونده های بزرگ استفاده کرده ایم و کنجکاو بودیم که این برای چیست. جایی که با انتخاب اشیاء با مقادیر خاص خاص ، داده ها را فیلتر می کند-به یک بیانیه IF در برنامه نویسی. در داخل بریس های فرفری ، $ _ نشان دهنده هر مورد در برابر شرایط فیلتر شما است.

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

Get-Service | Where-Object {$_.Status -eq "Running"}

اگر نیاز به یافتن فرآیندهای با استفاده از بیش از 100 مگابایت حافظه دارید ، این دستور را امتحان کنید:

Get-Process | Where-Object {$_.WorkingSet -gt 100MB}

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

get -childitem -filter *.docx | Where -Object {$ _. طول -gt 5mb -and $ _. lastwritetime -gt (دریافت تاریخ) .AddMonths (-1)}

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

Get-ChildItem | Where-Object {
   $_.Length -gt 1MB -and
   $_.Extension -eq ".log"
}

7

انتخاب کردن

دستور Object را در PowerShell انتخاب کنید

غالباً ، خروجی فرمان شامل اطلاعات بیشتری نسبت به آنچه شما نیاز دارید. Select-Object به شما امکان می دهد فقط داده های مورد نظر خود را انتخاب کنید. سپس می توانید خصوصیات انتخاب شده را به یک پرونده CSV با CMDlet Export-CSV صادر کنید. برای دیدن فقط نام و وضعیت خدمات ، از آنها استفاده کنید:

Get-Service | Select-Object Name, Status

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

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU

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

Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_.Length/1MB}}

اگر می خواهید یک مقدار خاصیت واحد را استخراج کنید ، از پارامتر -exandproperty استفاده کنید:

Get-Process notepad | Select-Object -ExpandProperty Id

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

6

عضو

فرمان عضو در PowerShell

PowerShell با اشیاء کار می کند و Get-Member خصوصیات و روشهای آنها را به شما نشان می دهد. به عنوان مثال ، اگر یک دستور به شما پرونده ای بدهد ، دریافت عضو می تواند اندازه ، تاریخ ایجاد و سایر جزئیات آن را نشان دهد. دستور زیر را تایپ کنید تا ببینید یک شیء فرآیند شامل چه اطلاعاتی است:

Get-Process | Get-Member

این دستور خواصی مانند CPU ، ID و CorkingSet را نشان می دهد ، به علاوه روش هایی مانند Kill () و Refresh (). اگر فقط می خواهید ویژگی ها را ببینید ، این را اضافه کنید:

Get-Process | Get-Member -MemberType Property

هنگام کار با پرونده ها:

Get-ChildItem C:\temp\test.txt | Get-Member

دستور فوق خواصی مانند طول و Lastwritetime و همچنین روشهایی مانند حذف () و Moveto () را نشان می دهد. به عنوان مثال ، می توانید از طول برای فیلتر کردن پرونده ها بر اساس اندازه یا LastWritEtime برای یافتن پرونده های اخیراً تغییر یافته استفاده کنید.

5

تخته سنگی و چرخ دستی

فرمان کلیپ بورد را در PowerShell تنظیم کنید

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

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

Get-Process | Select-Object Name, CPU | Set-Clipboard

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

$text = Get-Clipboard

این واقعاً هنگام پردازش لیست ها می درخشد. سپس لیستی از نام های رایانه را از اکسل کپی کنید ، سپس:

Get-Clipboard | ForEach-Object { Test-NetConnection $_ }

این اتصال به هر رایانه در لیست شما را آزمایش می کند. ادغام بین PowerShell و سایر برنامه ها ، کارهای تکراری را بسیار سریعتر می کند.

4

نمای خارج

فرمان خارج از شبکه در PowerShell

بعضی اوقات شما نیاز به مرتب سازی و فیلتر کردن نتایج به صورت تعاملی دارید. Out-GridView یک پنجره جداگانه با یک جدول قابل جستجو و قابل جستجو باز می کند.

Get-Process | Out-GridView

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

Get-Service | Out-GridView -PassThru | Restart-Service

پارامتر -Passhru به شما امکان می دهد ردیف ها را انتخاب کرده و آنها را به دستور بعدی منتقل کنید. خدمات مورد نظر خود را برای راه اندازی مجدد انتخاب کنید ، روی OK کلیک کنید و PowerShell فقط آن سرویس ها را مجدداً راه اندازی می کند.

برای تجزیه و تحلیل ورود به سیستم:

Get-EventLog -LogName Application -Newest 1000 | Out-GridView

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

3

فرآیند

فرماندهی PowerShell Explorer Process

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

برای دیدن همه فرآیندهای در حال اجرا ، فقط نوع:

Get-Process

اگر به دنبال یک برنامه خاص هستید ، مانند Google Chrome:

Get-Process chrome

برای متوقف کردن یک برنامه بی پاسخ ، می توانید آن را با دستور STOP PROCESS ترکیب کنید:

Get-Process notepad | Stop-Process

اگر می خواهید آنچه را که حافظه خود را می خورید پیدا کنید ، سعی کنید:

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10

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

مطلب مرتبط:   چگونه از ویندوز 11 به ویندوز 10 دانگرید کنیم