PowerShell आपको अपने विंडोज पीसी पर वह सभी नियंत्रण देता है जिसकी आपको आवश्यकता है, और यह सीखना आसान है। तो कमांड प्रॉम्प्ट छोड़ें और उन दोहराव वाले प्रशासनिक कार्यों को स्वचालित करने के लिए विंडोज PowerShell कमांड का उपयोग करें।
PowerShell सीखना आपको बाश शेल के अंदर अधिकांश लिनक्स प्रशासनिक कार्यों को संभालना भी सिखाएगा। PowerShell अधिकांश लिनक्स डिस्ट्रो में मिलने वाले के समान है।
PowerShell क्या है?
विंडोज PowerShell माइक्रोसॉफ्ट द्वारा सिस्टम प्रशासकों के लिए विकसित एक कमांड-लाइन इंटरफेस और स्क्रिप्टिंग भाषा है। लेकिन आपको इसका उपयोग करने के लिए एडमिन या प्रोग्रामर होने की आवश्यकता नहीं है क्योंकि यह अन्य प्रोग्रामिंग भाषाओं की तुलना में बहुत सरल है। यह नियमित अंग्रेजी के समान है, और हर कोई इसे समझ सकता है और अपने कंप्यूटर को प्रशासित करने के लिए इसका उपयोग कर सकता है।
विंडोज PowerShell में उपयोग की जाने वाली कमांड को "कमांडलेट" के रूप में जाना जाता है। वे आपको अपने कंप्यूटर पर एक विशिष्ट कार्रवाई, या कार्रवाई की श्रृंखला को सक्रिय करने देंगे। ये क्रियाएं सरल हो सकती हैं, जैसे वायरलेस नेटवर्क में लॉग इन करना, या अधिक जटिल, जैसे विशिष्ट दोहराव वाले कार्यों को स्वचालित करना।
PowerShell खोलने के लिए, स्टार्ट बटन दबाएं, खोज बॉक्स में "powershell" टाइप करें, और विंडोज PowerShell चुनें। आप कमांड-लाइन इंटरफेस पर खुलेंगे, जहां आप कमांड टाइप करना शुरू करने के लिए तैयार हैं।
इस लेख में, हम दस सबसे उपयोगी और आसान PowerShell कमांड पर जाएंगे।
1. Get-Help
Get-Help कमांडलेट PowerShell में शुरू करने के लिए एक शानदार जगह है। यह आप क्या कर सकते हैं इसका अवलोकन प्रदान करता है और जब आपको किसी विशेष कमांडलेट पर अधिक जानकारी की आवश्यकता होती है तो यह बहुत अच्छा होता है।
बस PowerShell विंडो खोलें और Get-Help टाइप करें। यह एक व्यापक अवलोकन खोलेगा जो आपको सिखाएगा कि PowerShell क्या है, और आप इसकी कार्यक्षमता और संरचना को समझेंगे। आप इंटरफेस के माध्यम से सीधे वेब पर अधिक उन्नत सहायता फ़ाइलों तक भी पहुंच सकते हैं। आप इन फ़ाइलों को बाद में उपयोग के लिए डाउनलोड कर सकते हैं।
लेकिन यह Get-Help कमांड का अंत नहीं है। टाइप करें:
Get-Help *
PowerShell उस क्षण उपयोग करने योग्य सभी कमांडलेट को सूचीबद्ध करेगा। सूची शायद बहुत बड़ी होगी, और आपको प्रदर्शित सभी कमांडलेट सीखने की आवश्यकता नहीं है। लेकिन बेझिझक उन्हें पढ़ें और अपने लिए उपलब्ध सभी संभावनाओं का पता लगाएं।
टाइप करें:
Get-Help <कमांड नाम>
आपको कोष्ठक की आवश्यकता नहीं है, बस उस कमांड का नाम टाइप करें जिसमें आप रुचि रखते हैं, और यह कमांडलेट आपको इसके बारे में बुनियादी जानकारी देगा। किसी कमांड के और भी विस्तृत विवरण के लिए, टाइप करें:
Get-Help <कमांड नाम> -Full
यदि आपको किसी विशेष कमांड का उपयोग करने का उदाहरण चाहिए तो टाइप करें:
Get-Help <कमांड नाम> -Example
2. Get-Command
क्या आप किसी विशिष्ट कमांड, या कमांड के सेट के बारे में जल्दी से जानकारी प्राप्त करना चाहते हैं? Get-Command कमांडलेट आपके लिए यह करेगा। Get-Command के भीतर बहुत सारे विकल्प हैं, लेकिन आप, PowerShell के एक बुनियादी उपयोगकर्ता के रूप में, उनमें से अधिकांश की आवश्यकता नहीं है। यहां कुछ बुनियादी कमांडलेट हैं जो सहायक होंगे, खासकर उपलब्ध कमांड को नेविगेट करते समय।
यदि आप एक ही प्रकार के विशिष्ट कमांडलेट की सूची चाहते हैं:
Get-Command -<कमांडटाइप>
उदाहरण के लिए, यह जटिल वाक्यांश आपके कंप्यूटर को उपलब्ध सभी कमांडलेट प्रकार की कमांड की सूची प्रदर्शित करने और उन्हें उनके नाम में संज्ञा के वर्णमाला क्रम के अनुसार क्रमबद्ध करने का आदेश देगा:
Get-Command -Type Cmdlet | Sort-Object -Property Noun| Format-Table -GroupBy Noun
यह एक अधिक जटिल कमांड का एक उत्कृष्ट उदाहरण है जो PowerShell को एक जटिल कार्य निष्पादित करेगा। एक बार जब आप सिंटैक्स समझ जाते हैं, तो आप देखेंगे कि अपने कंप्यूटर पर कुछ चीजों को पूरा करने के लिए PowerShell का उपयोग करना अक्सर सबसे तेज़ और आसान होता है।
यदि आप उसके नाम से किसी विशिष्ट कमांड को ढूंढना चाहते हैं, तो बस टाइप करें:
Get-Command -Name <कमांड का नाम>
यदि आप जिस कमांड को ढूंढ रहे हैं उसका सटीक नाम नहीं जानते हैं, लेकिन आप नाम का एक हिस्सा जानते हैं, तो आप टाइप कर सकते हैं:
Get-Command -Name <कमांड का नाम> -UseFuzzyMatching
यह कमांडलेट आपके कंप्यूटर को
3. Get-Content
यदि आप किसी फ़ाइल की सामग्री देखना चाहते हैं, तो Get-Content कमांडलेट का उपयोग करें। आपको उक्त फ़ाइल का सटीक स्थान निर्दिष्ट करना होगा ताकि आपका कंप्यूटर इसे ढूंढ सके।
ऊपर दिए गए उदाहरण में, आप इस उद्देश्य के लिए बनाई गई एक टेस्ट टेक्स्ट फ़ाइल की सामग्री देख सकते हैं। यह एक सीधी कमांड है, लेकिन यदि आप जानते हैं कि यह क्या करती है, तो आप इसे अन्य कमांड के साथ जोड़ सकते हैं और विंडोज PowerShell के माध्यम से वास्तव में शक्तिशाली कार्य कर सकते हैं।
4. Get-Process
Get-Process कमांडलेट आपको अपने कंप्यूटर पर वर्तमान में चल रही प्रक्रियाओं की जानकारी देगा। आप मेमोरी उपयोग, CPU साइकिल, प्रोसेस ID, और अन्य विशेषताएं देख सकते हैं।
यदि आप इस कमांडलेट में प्रक्रिया का नाम जोड़ते हैं, तो आप किसी विशिष्ट प्रक्रिया की जानकारी देख सकते हैं। उदाहरण के लिए, यदि आप Discord एप्लिकेशन प्रक्रिया की जानकारी चाहते हैं, तो बस Get-Process Discord टाइप करें।
आप PowerShell के माध्यम से प्रक्रियाओं को शुरू या रोक सकते हैं, बस सिंटैक्स के "Get" उपसर्ग को बदलकर। किसी प्रक्रिया को शुरू करने के लिए, टाइप करें:
Start-Process <प्रक्रिया नाम या ID>
किसी प्रक्रिया को रोकने के लिए, टाइप करें:
Stop-Process <प्रक्रिया नाम या ID>
5. Get-Service
एक सिस्टम प्रशासक के रूप में, आप Get-Service कमांडलेट को बहुत उपयोगी पा सकते हैं। यह सरल कमांडलेट आपके सिस्टम पर वर्तमान में चल रही सभी सेवाओं को प्रदर्शित करेगा और आपको उन्हें नियंत्रित करने की अनुमति देगा। इसका मतलब है कि आप उन सभी प्रोग्राम को देख सकते हैं जो वर्तमान में आपके कंप्यूटर को चलाने के लिए काम कर रहे हैं।
अब आप इसे नियंत्रित करने के लिए सेवा नाम का उपयोग कर सकते हैं। Restart-Service <सेवा नाम> जैसे कमांड का उपयोग अटके हुए को अनस्टक करने के लिए, Stop-Service <सेवा नाम> उन्हें पूरी तरह से रोकने के लिए, और Start-Service उन्हें फिर से शुरू करने के लिए करें।
6. Get-Item
यदि आपको कोई विशिष्ट आइटम चाहिए, तो उसे अपने ऑपरेटिंग सिस्टम में एकीकृत सर्च बार का उपयोग करने के बजाय PowerShell के माध्यम से ढूंढना तेज़ हो सकता है। यह विशेष रूप से सुविधाजनक है यदि आप जिस फ़ाइल की आवश्यकता है उसका स्थान जानते हैं। बस इस तरह से कमांड का उपयोग करें:
Get-Item C:
यह आपको "C:" हार्ड ड्राइव में फ़ाइलों की सूची लाएगा। आप और भी अधिक विशिष्ट हो सकते हैं और उपयोगकर्ता की प्रोफ़ाइल के तहत सभी निर्देशिकाओं में खोज सकते हैं या "दस्तावेज़" या "डाउनलोड" निर्देशिकाओं में गहराई तक जा सकते हैं। ऐसा करने के लिए, टाइप करें:
Get-Item C:\users\<उपयोगकर्ता नाम>\*
यदि आपको किसी कंटेनर से चाइल्ड आइटम प्राप्त करने की आवश्यकता है, जैसे सिस्टम डायरेक्टरी, तो आप कमांडलेट Get-ChildItem का उपयोग कर सकते हैं। यह कमांड आपको उस कंटेनर के अंदर सभी फ़ाइलों और निर्देशिकाओं को दिखाएगा। Get-Item कमांडलेट के साथ, आपको कंटेनर का पथ निर्दिष्ट करना होगा।
आइटम हटाने के लिए, आप "Get" प्रत्यय को "Remove" से बदल सकते हैं। यह आपको फ़ाइलों और फ़ोल्डर्स से लेकर रजिस्ट्री कुंजियों और फ़ंक्शन तक सब कुछ हटाने की अनुमति देगा। Remove-Item <स्थान\ नाम> टाइप करें। आप इस कमांडलेट को विस्तृत कर सकते हैं और केवल छिपी हुई और "रीड-ओनली" फ़ाइलों को हटा सकते हैं या विशिष्ट फ़ोल्डर्स और सबफ़ोल्डर्स से आइटम हटा सकते हैं।
7. ConvertTo-Html
यह कमांड आपको एक .NET ऑब्जेक्ट को एक HTML फ़ाइल में बदलने में मदद करेगा जिसे वेब ब्राउज़र में प्रदर्शित किया जा सकता है। यह एक आउटपुट कमांडलेट है जिसका अर्थ है कि यह अन्य कमांडलेट के साथ बहुत अच्छा काम करता है। बस इसे अन्य कमांडलेट के अंत में जोड़ें और एक विशिष्ट फ़ाइल पथ शामिल करें।
उदाहरण के लिए, यदि आप एक HTML फ़ाइल बनाना चाहते हैं जो स्थानीय कंप्यूटर के सभी वर्तमान प्रक्रियाओं का नाम, पथ, और कंपनी प्रदर्शित करती है, तो टाइप करें:
Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "प्रक्रिया जानकारी" | Out-File filename.htm
filename.htm को किसी भी फ़ाइल नाम से बदलें जो आप चाहते हैं।
बनाई गई फ़ाइल को खोलने के लिए, Invoke-Item कमांडलेट प्लस <फ़ाइल नाम.htm> का उपयोग करें। सामग्री नीचे दी गई छवि जैसी दिखनी चाहिए।
8. Set-ExecutionPolicy
यदि आप स्थानीय PowerShell स्क्रिप्ट चलाना चाहते हैं, तो आपको PowerShell की निष्पादन नीति को बदलना होगा। विंडोज कंप्यूटर पर, निष्पादन नीति हमेशा प्रतिबंधित होती है, और आपको इसे RemoteSigned या Unrestricted में बदलना होगा। लिनक्स या मैक जैसे गैर-विंडोज कंप्यूटर पर, यह आमतौर पर Unrestricted पर सेट होता है, और इसे बदला नहीं जा सकता।
यदि आप PowerShell निष्पादन नीति के बारे में अधिक जानना चाहते हैं, तो बस टाइप करें:
help Set-ExecutionPolicy
PowerShell आपके कंप्यूटर पर निष्पादन नीति के बारे में सहायता फ़ाइलें प्रदर्शित करेगा या यदि कोई नहीं है तो आपको सूचित करेगा। लेकिन यह आपको एक लिंक भी प्रदान करेगा जिसका आप अनुसरण कर सकते हैं और इसके बारे में ऑनलाइन पढ़ सकते हैं।
नीति को RemoteSigned पर सेट करने के लिए, बस टाइप करें:
Set-ExecutionPolicy RemoteSigned
इसे Unrestricted पर सेट करने के लिए टाइप करें:
Set-ExecutionPolicy Unrestricted
निष्पादन नीति के लिए वर्तमान सेटिंग की जांच करने के लिए, टाइप करें:
Get-ExecutionPolicy
क्योंकि निष्पादन नीतियां PowerShell की सुरक्षा रणनीतियों का हिस्सा हैं, यह आपसे परिवर्तन की पुष्टि मांगेगा। केवल Y टाइप करें यदि आप सुनिश्चित हैं कि आप आगे बढ़ना चाहते हैं।
9. Select-Object
यह कमांड ऑब्जेक्ट और ऑब्जेक्ट के सेट, अद्वितीय ऑब्जेक्ट, और एक सरणी में एक विशिष्ट स्थिति में ऑब्जेक्ट का चयन करने के लिए उपयोग किया जाता है। ऐसे विभिन्न पैरामीटर हैं जिनका उपयोग आप उन ऑब्जेक्ट को निर्दिष्ट करने के लिए कर सकते हैं जिन्हें आप चुनना चाहते हैं। उनमें गुण, संख्यात्मक मान, और विशिष्ट इनपुट ऑब्जेक्ट शामिल हैं।
गुण विशेषता द्वारा ऑब्जेक्ट का चयन करने के लिए, आपको नाम, ID, या CPU जैसे विशेषताओं को निर्दिष्ट करना होगा। आप विशेषताओं को समूहित भी कर सकते हैं, लेकिन कमांड में टाइप करते समय आपको उन्हें अल्पविराम से अलग करना होगा। Select-Object कमांडलेट को कार्रवाई में देखने के लिए टाइप करें:
Get-Process | Select-Object -Property ProcessName, Id, CPU
PowerShell नीचे दिखाए अनुसार सभी वर्तमान प्रक्रियाओं और उनकी विशेषताओं को सूचीबद्ध करेगा।
अब आप विशिष्ट विशेषता के बारे में विस्तृत जानकारी प्राप्त करने के लिए -ExpandProperty कमांड का उपयोग कर सकते हैं। यदि आप ProcessName विशेषता के प्रकार के Modules गुण के बारे में विवरण चाहते हैं:
Get-Process Chrome | Select-Object -Property ProcessName -ExpandProperty Modules | Format-List
कमांड का "Format-List" आउटपुट परिणामों को स्वरूपित और पठनीय बनाने के लिए है।
10. Export-CSV
कभी-कभी PowerShell कमांड लंबी सूचियों का परिणाम देते हैं, जैसा कि हमने Get-Command कमांडलेट के साथ देखा। लंबी सूचियां और बहुत सारी जानकारी पढ़ना मुश्किल होता है, और आप इसे अधिक व्यवस्थित तरीके से चाहेंगे। ऐसा करने के लिए, सभी डेटा को CSV फ़ाइल में निर्यात करें। आप Export-CSV फ़ंक्शन का उपयोग करके PowerShell में सीधे ऐसा कर सकते हैं।
उदाहरण के लिए, हमने देखा कि कमांडलेट Get-Command हमें उस क्षण PowerShell में उपयोग करने योग्य सभी उपलब्ध कमांडलेट की एक लंबी सूची देता है। आप Get-Command और Export-CSV को मिलाकर नाम, स्रोत, और संस्करण जैसे कॉमा-सेपरेटेड मानों के साथ एक विस्तृत सूची बना सकते हैं जिन्हें Excel जैसे ऐप पहचान सकते हैं।
ऐसा करने के लिए, निम्न कमांड को PowerShell कमांड प्रॉम्प्ट में टाइप करें लेकिन ध्यान दें कि आप कोई भी पथ सेट कर सकते हैं, और आप अपनी फ़ाइल का नाम अलग रख सकते हैं:
Get-Command | Select Name, Source, Version | Export-Csv D:\AllCommands.csv
अब आप सूची को Excel में खोल सकते हैं, और आपको निम्न छवि के समान कुछ दिखाई देना चाहिए।