PowerShell Microsoft का अपने स्वयं के कमांड प्रॉम्प्ट का विकल्प है। पहले, Microsoft ने घोषणा की कि वे PowerShell को ओपन सोर्स करेंगे और इसे Ubuntu, CentOS, Red Hat Enterprise Linux, OpenSUSE, Fedora और macOS जैसे Linux के विभिन्न स्वादों के हाल के संस्करणों में लाएंगे। उन्होंने PowerShell Core भी जारी किया जिसने PowerShell के पहले संस्करण की तुलना में कहीं अधिक सुविधाएँ प्रदान कीं जो Windows के साथ शिप किया गया था। इसे System Administrators के लिए बनाया गया था और कमांड प्रॉम्प्ट का विकल्प बनने के लिए था। PowerShell के इस क्रॉस-प्लेटफ़ॉर्म विस्तार के साथ, उपयोगकर्ताओं को विभिन्न ऑपरेटिंग सिस्टम और वातावरण पर काम करने के लाभ मिलेंगे।

वर्षों से, PowerShell को अधिक cmdlets या PowerShell कमांड का समर्थन करने के लिए काम किया गया है और उन्नत किया गया है ताकि यह विभिन्न कार्यों को प्रबंधित करने के लिए पर्याप्त लचीला हो सके। उन संगठनों के लिए जो Windows-केवल सॉफ़्टवेयर और सेवाएं चलाते हैं, Microsoft अपनी सेवाओं जैसे Windows Server, Azure Active Directory, और Exchange को PowerShell का उपयोग करके प्रबंधित करने में सक्षम बनाने के लिए निर्माण कर रहा है। इसका परिणाम सेवाओं के बेहतर उपयोग में होता है, बजाय GUI-आधारित कॉन्फ़िगरेशन मैनेजर का उपयोग करने के, और यह लंबी अवधि में बहुत सारे लॉजिस्टिकल लागतों को बचाने में मदद करता है।
PowerShell पर निष्पादित किए जा सकने वाले समकक्ष CMD कमांड
आज, हम CMD के लिए कुछ बुनियादी कमांड के बारे में बात करेंगे जिन्हें PowerShell कमांड लाइन का उपयोग करके भी निष्पादित किया जा सकता है।

1] यदि आप कमांड लाइन में किसी भी स्थान पर नेविगेट करना चाहते हैं तो यह वास्तव में सरल है। जहां आप कमांड प्रॉम्प्ट में cd का उपयोग करते हैं, आप PowerShell के अंदर उसी चीज़ के लिए उपयोग कर सकते हैं
Set-Location ""
2] फ़ोल्डर की सभी सामग्री को सूचीबद्ध करना कोई बड़ी बात नहीं है अगर यह आपको निर्देशिकाओं के पेड़ के माध्यम से नेविगेट करने में मदद करेगा। कमांड प्रॉम्प्ट के लिए, हमने dir का उपयोग किया, लेकिन जब आप PowerShell का उपयोग करते हैं, तो आप बस उपयोग कर सकते हैं
Get-ChildItem
एक निर्देशिका के अंदर सभी फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करने के लिए।
3] नाम बदलना कुछ ऐसा है जिसे हम अपने 100% GUI केंद्रित ऑपरेटिंग सिस्टम पर मान लेते हैं। लेकिन जब किसी रिमोट सिस्टम पर फ़ाइल या फ़ोल्डर का नाम बदलना होता है, तो कमांड प्रॉम्प्ट का उपयोग करते समय rename कमांड पर भरोसा करना पड़ता था लेकिन PowerShell में, वे उपयोग कर सकते हैं
Rename-Item "Path/of/the/file.txt" -NewName "NewNameOfTheFile.csv"
इसका उपयोग करके, उपयोगकर्ता विशेष फ़ाइल के नाम के साथ-साथ एक्सटेंशन को भी बदल सकता है।

4] यदि आप कोई कमांड जानते हैं और इस बारे में निश्चित नहीं हैं कि यह किस बारे में है, तो कमांड प्रॉम्प्ट कमांड लाइन पर /? कमांड बहुत मददगार हुआ करती थी। सौभाग्य से, PowerShell में यह सुविधा नहीं है। आप उपयोग कर सकते हैं
Get-Help "CMDLET NAME"
यह जांचने के लिए कि PowerShell पर एक CMDLET क्या करता है।
5] यहां तक कि एक चल रही प्रक्रिया को रोकने के लिए भी आपको किसी प्रकार के टास्क मैनेजर पर भरोसा करने की आवश्यकता नहीं है जब आपके पास PowerShell हो। taskkill कमांड प्रॉम्प्ट पर एक विश्वसनीय कमांड है, लेकिन PowerShell के साथ, आप उपयोग कर सकते हैं
Stop-Process -Name "ApplicationName.exe"
6] जिस कमांड पर हम चर्चा करने जा रहे हैं वह कुछ ऐसा है जिसे मैंने व्यक्तिगत रूप से स्कूलों में बहुत बार उपयोग होते देखा है। यह एक बहुत उपयोगी कमांड है। इसका उपयोग रिमोट कंप्यूटर या सर्वर सत्र को बंद करने के लिए किया जा सकता है। कमांड प्रॉम्प्ट पर, shutdown -s का उपयोग किया जा सकता है लेकिन PowerShell के लिए,
Stop-Computer -ComputerName "HostName1","HostName2","Gateway or Address"
रिमोट कंप्यूटर को बंद करने के लिए उपयोग किया जा सकता है।
7] कंप्यूटर को बंद करने के समान, कमांड प्रॉम्प्ट कमांड shutdown -r,
Restart-Computer -ComputerName "HostNameNew", "Gateway or Address"
PowerShell के साथ वही काम करने के लिए उपयोग किया जा सकता है।
8] यदि सिस्टम की ग्रुप पॉलिसी में कुछ नए परिवर्तन किए जाते हैं और परिवर्तनों को देखने के लिए, आपको ग्रुप पॉलिसी को जबरन रीफ्रेश करने की आवश्यकता होती है, तो कमांड प्रॉम्प्ट पर gpupdate /force का उपयोग किया जाता था। लेकिन PowerShell पर, कोई उपयोग कर सकता है
Invoke-GPUpdate -Computer "Name of the Host" -Force
निर्दोष रूप से उपयोग किया जा सकता है।
9] वेरिएबल सेट करने के लिए, कमांड प्रॉम्प्ट कमांड लाइन में, कोई उपयोग कर सकता है
SET VariableName = "Value of the Variable"
, लेकिन PowerShell पर, $ सब कुछ का ख्याल रखता है। आप बस इस कमांड का उपयोग करके आवश्यक कार्य कर सकते हैं,
$VariableName="Value of the Variable".
10] यदि आप किसी कंप्यूटर को डोमेन से जोड़ना चाहते हैं, तो यह बहुत सीधा है। कमांड प्रॉम्प्ट में, कोई इस कमांड का उपयोग कर सकता है:
netdom /domain:domainName /user:userName /password:passwordForTheDomain member hostname /add
लेकिन जब आप PowerShell का उपयोग करते हैं, तो आप इसका लाभ उठा सकते हैं
Add-Computer -DomainName "Domain" -Credential "Domain\Username" -Restart
यदि हम ध्यान से देखें, तो बुनियादी कमांड प्रॉम्प्ट कमांड PowerShell के साथ समान रूप से निष्पादित होने पर थोड़े जटिल हो जाते हैं। लेकिन जब हम डोमेन में शामिल होने वाली कमांड जैसे जटिल कमांड के बारे में बात करते हैं जिसे हमने कमांड प्रॉम्प्ट और PowerShell दोनों में उपयोग किया था, और जब हम निरीक्षण करते हैं, तो कमांड प्रॉम्प्ट में उपयोग की जाने वाली कमांड PowerShell समकक्ष की तुलना में बहुत अधिक जटिल होती है।
इसलिए, हम कह सकते हैं कि कमांड प्रॉम्प्ट समकक्ष पर PowerShell का कार्यान्वयन बेहतर है। इसमें यह तथ्य भी शामिल है कि यह अन्य प्लेटफार्मों और वातावरणों पर भी उपलब्ध है।
हमारा मानना है कि Microsoft PowerShell को कमांड प्रॉम्प्ट से बेहतर बनाने के लिए अधिक आक्रामक तरीके से काम करेगा न कि इसे जबरन बदलकर।
