श्रृंखला में पिछले लेखों को पढ़ना सुनिश्चित करें:
- PowerShell के साथ विंडोज स्वचालित करने के लिए जानें
- PowerShell में Cmdlets का उपयोग करना सीखना
- PowerShell में ऑब्जेक्ट्स का उपयोग कैसे करें सीखना
- PowerShell में स्वरूपण, फ़िल्टरिंग और तुलना करना सीखना
- PowerShell में रिमोटिंग का उपयोग करना सीखें
- कंप्यूटर जानकारी प्राप्त करने के लिए PowerShell का उपयोग करना
और पूरे सप्ताह श्रृंखला के बाकी हिस्सों के लिए देखते रहें।
बैच सीएमडीलेट का उपयोग करना
इससे पहले श्रृंखला में, जब हमने आपको पाइपलाइन पर पेश किया, तो हमने आपको दिखाया कि आप उन वस्तुओं को कैसे ले सकते हैं जो एक cmdlet आउटपुट करते हैं और उन्हें इस तरह कुछ का उपयोग करके किसी अन्य cmdlet में इनपुट के रूप में पास करते हैं:
Get-Process -Name notepad | Stop-Process
यह किसी भी प्रक्रिया को "नोटपैड" नाम से मार देगा। लेकिन आप शायद सोच रहे हैं कि कैसे PowerShell एक कमांड के साथ नोटपैड के हर उदाहरण को मारने में सक्षम है। जवाब स्टॉप-प्रोसेस cmdlet की मदद से निहित है।
help Stop-Process –Full
यदि आप सिंटैक्स सेक्शन में कोड की आखिरी पंक्ति देखते हैं, तो आप देख सकते हैं कि इनपुट ऑब्जेक्ट पैरामीटर प्रक्रिया के किसी ऑब्जेक्ट को स्वीकार करता है, और जब भी आप एक प्रकार देखते हैं तो उसके बाद दो स्क्वायर ब्रैकेट होते हैं, इसका मतलब है कि पैरामीटर स्वीकार करता है एक या अधिक पिछले प्रकार के। इस मामले में, यह एक या अधिक प्रक्रिया वस्तुओं को स्वीकार करता है। तकनीकी रूप से, हम कहेंगे कि इनपुट ऑब्जेक्ट cmdlet एक प्रक्रिया स्वीकार करता है सरणी । जब भी आपके पास एक cmdlet है जो बैच ऑपरेशंस का समर्थन करता है, तो इसका उपयोग करें। यह पसंद नंबर एक है।
डब्ल्यूएमआई का उपयोग करना
यद्यपि डब्लूएमआई माइक्रोसॉफ्ट मुख्यालय से जहाज के लिए प्रौद्योगिकी का सबसे अच्छा टुकड़ा नहीं है, लेकिन वस्तुओं के संग्रह के साथ काम करने के तरीके की सूची में यह दूसरे स्थान पर आता है। हम आसानी से Win32_Process कक्षा से चल रही प्रक्रियाओं की एक सूची प्राप्त कर सकते हैं:
Get-WmiObject –Class Win32_Process
Get-WmiObject –Class Win32_Process | Get-Member
ऐसा लगता है कि बंद करने की सबसे नज़दीकी चीज समाप्त प्रक्रिया है, इसलिए यह एक होना चाहिए। WMI ऑब्जेक्ट पर कोई विधि कॉल करने के लिए, आप इसे केवल Invoke-WmiMethod पर पाइप करें और विधि का नाम निर्दिष्ट करें।
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
गणना
अन्य दो विधियों को विफल करना, यदि आपको वस्तुओं के समूह में कुछ करना है तो आप संपूर्ण वस्तु का आकलन कर सकते हैं और प्रत्येक व्यक्तिगत वस्तु पर कार्य कर सकते हैं। सबसे पहले आपको एक विधि को रोकने के लिए उपयोग की जाने वाली विधि को ढूंढना होगा।
Get-Process | Get-Member -MemberType Method
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
सारांश
विकल्प एक
Get-Process -Name notepad | Stop-Process
विकल्प दो
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
चॉइस तीन
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
इस समय लोगों के लिए यह सब कुछ है, अगले पावरशेल मज़े के लिए आपको अगले सप्ताह देखें।