مایکروسافت واسط خط دستور PowerShell را به عنوان جایگزین امروزی Command Prompt در ویندوز ۱۰ پیش‌بینی کرده و از طرفی پاورشل را متن باز کرده تا در توزیعات مختلفی لینوکس مثل اوبونتو و CentOS و فدورا و حتی مک‌او‌اس قابلیت استفاده داشته باشد. حتی PowerShell Core نیز با قابلیت‌های بیشتر منتشر شده تا در کنار نسخه‌های قبلی پاورشل در ویندوز، قابل استفاده باشد.

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

با توجه به اقدامات مایکروسافت، روشن است که استفاده از PowerShell برای کاربرانی که می‌خواهند علاوه بر ویندوز از سیستم عامل دیگری استفاده کنند، مفیدتر از cmd یا به عبارت دیگر Command Prompt است. از طرف دیگر پاورشل مدرن‌تر و کامل‌تر از cmd طراحی شده و قابلیت‌های آن در آینده نیز بیشتر می‌شود. مایکروسافت مدیریت کردن سرویس‌هایی مثل Windows Server و Azure Active Directory را از طریق PowerShell امکان‌پذیر کرده و به نظر می‌رسد که در جایگزین کردن آن به جای کامند پرامپت قدیمی کاملاً جدی است.

دستورات CMD که در PowerShell قابل استفاده است

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

دستور CD برای تغییر آدرس

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

cd PATH

در پاورشل برای این کار می‌توانید از دستور دیگری به اسم Set-Location و به دنبال آن مسیر موردنظر که بین دو دابل‌کوتیشن قرار گرفته، استفاده می‌شود. لذا به جای PATH در دستور زیر، آدرس موردنظر را قرار بدهید:

Set-Location "PATH"

و نتیجه را در تصویر زیر مشاهده می‌کنید.

دستور dir برای لیست کردن فایل و فولدرها

برای لیست کردن تمام محتویات داخل یک فولدر، از دستور dir استفاده می‌شود. این دستور عیناً در پاورشل نیز قابل استفاده است.

dir

در پاورشل برای این کار می‌توانید از دستور دیگری به اسم Get-Children نیز استفاده کنید که محتویات فولدر فعلی را لیست می‌کند.

Get-Children

دستور تغییر نام

تغییر دادن نام به کمک رابط کاربری گرافیکی بسیار ساده است اما گاهی برای Rename کردن فایل یا فولدرها به صورت ریموت، نیاز به دستورات cmd و در واقع دستور rename داریم که در پاورشل نیز قابل استفاده است. برای تغییر نام از طریق PowerShell می‌توانید از دستور Rename-Item به شکل زیر استفاده کنید:

Rename-Item "Path/of/the/file.txt" - NewName "NewNameOfTheFile.csv"

اگر سینتکس این دستور را فراموش می‌کنید، از دستور Get-Help برای دریافت راهنما استفاده کنید.

دریافت راهنمای دستورات با  /?

در cmd زمانی که سینتکس استفاده از دستوری را فراموش می‌کنیم، یک راهکار ساده استفاده از /? پس از دستور است. در پاورشل هم می‌توانید از دستور مشابهی استفاده کنید. دستور Get-Help نیز همین کار را انجام می‌دهد و می‌بایست پس از این دستور، نام فرمان موردنظر را بین " قرار بدهید:

Get-Help "CMDLET NAME"

توقف پردازش‌ها با دستور taskkill

یک روش بستن اجباری پردازشی دلخواه در ویندوز، استفاده از دستور taskkill در cmd است. در پاورشل هم می‌توانید از دستور مشابهی به صورت زیر استفاده کنید. کافی است در دستور زیر، نام فایل اجرایی اپلیکیشن یعنی ApplicationName.exe را تغییر بدهید:

Stop-Process -Name "ApplicationName.exe"

خاموش کردن سیستم با فرمان shutdown -s

برای خاموش کردن سیستم می‌توانید از دستور shutdown و آپشن -s استفاده کنید. این دستور در پاورشل نیز قابل استفاده است. توجه کنید که در فرمان زیر به جای نام هاست که پس از آپشن -ComputerName ذکر می‌شود، از نام کامپیوتر استفاده کنید.

Stop-Computer -ComputerName "HostName1","HostName2","Gateway or Address"

ری‌استارت کردن با دستور shutdown -r

این دستور نیز در واقع همان دستور خاموشی است اما سوییچ -s به -r تغییر کرده تا ری‌استارت انجام شود.

Restart-Computer -ComputerName "HostNameNew", Gateway or Address"

اعمال اجباری تنظیمات جدید Group Policy

در CMD زمانی که تنظیمات سیستم را از طریق گروپ پالسی ادیتور تغییر داده‌اید و می‌خواهید وضعیت اجباراً و همان لحظه بروز شود، دستور زیر پیش‌بینی شده است:

gpupdate /force

در پاورشل هم این کار با دستور مشابهی به صورت زیر قابل اجراست:

Invoke-GPUpdate -Computer "Name of the Host" -Force

تنظیم مقدار متغیرها در cmd و پاورشل

برای مشخص کردن مقدار یک متغیر، از دستور زیر در cmd استفاده می‌شود:

SET VariableName = "Value of the Variable"

اما در PowerShell برای این کار می‌بایست صرفاً از $ استفاده کنید:

$"VariableName"="Value of the Variable".

الحاق کامپیوتر به یک دامین

برای ملحق کردن یک کامپیوتر ویندوزی به یک دامین، می‌توان از دستور زیر در cmd استفاده کرد:

netdom /domain:domainName /user:userName /password:passwordForTheDomain member hostname /add

در مورد PowerShell نیز دستور مشابهی وجود دارد:

Add-Computer -DomainName "Domain" -Credential "Domain\Username" -Restart

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