2008-08-12 19 views
26

Windows PowerShell पिछले साल बाहर आया और कई नेट नेटर्स (Hanselman दिमाग में आता है) से बहुत अच्छी समीक्षा मिली। ऐसा लगता है कि एक महान नई उपयोगिता के रूप में कहा जाता है कि किसी भी तरह से आप कमांड लाइन पर जो कुछ भी करेंगे, उसे आसान बनाते हैं, और नेट के साथ एकीकृत किया जाता है। हालांकि, जितना अधिक मैंने इसके बारे में पढ़ा है, उतना ही ऐसा लगता है कि यह आईटी पेशेवरों के लिए बहुत अच्छा है, और डेवलपर्स के लिए ज्यादा उपयोग नहीं है।आप PowerShell का उपयोग कैसे करते हैं?

क्या आप अपने देव काम में पावरशेल का उपयोग करते हैं? यदि हां, तो कैसे? क्या यह सीखने लायक है?

नोट: प्रतिक्रियाओं को अब तक देखने के बाद, मुझे लगता है कि यह निष्कर्ष निकालना वैध है कि PowerShell .NET डेवलपर के लिए बहुत उपयोगी हो सकता है। हालांकि, नीचे कोई जवाब नहीं है कि मैं उत्तर के रूप में लेबल कर सकता हूं (इसलिए कृपया ऐसा करने के लिए मुझे क्षमा करें)। मैं प्रत्येक उत्तर को वोट दे रहा हूं जिसे मैंने उपयोगी पाया है।

उत्तर

0

हालांकि मैंने अभी तक इसका पूरी तरह से उपयोग करने के बारे में नहीं सीखा है, लेकिन मैं एक प्रशंसक हूं क्योंकि यह यूनिक्स कमांड के अधिकांश (यदि नहीं सभी) का समर्थन करता है, तो मैं कमांड लाइन का उपयोग करके नेविगेट करने के लिए परिचित हूं। यदि आपके पास * निक्स अनुभव है और विंडोज़ पर विकास कर रहे हैं, तो मैं इसके लिए इसका उपयोग करने की सलाह दूंगा क्योंकि आपको केवल आदेशों का एक सेट याद रखना होगा।

हालांकि, नमक के अनाज के साथ मैं जो कहता हूं उसे ले लो। जब इमारत और संकलन की बात आती है, तो मैं कमांड लाइन कार्यक्षमता का उपयोग करता हूं।

1

मैं वास्तविक देव काम के लिए इसे बहुत कम उपयोग करता हूं। मैं इसे सेटअप करने के लिए वर्चुअल निर्देशिका स्वचालित रूप से उपयोग किया है और एक scipt कि हमारे सभी देव मशीनों

0

मैं आईटी प्रो प्रकार सामान एक निष्पक्ष बिट (जिसके लिए यह बढ़िया है) के लिए इसका इस्तेमाल करते हैं पर एक ही सेटिंग्स के साथ आईआईएस सेट पर अमल, लेकिन ऐसा नहीं लगता कि मैंने इसे विकास के लिए बहुत अधिक उपयोग किया है - कभी-कभी स्ट्रिंग की तरह कुछ करने की कोशिश करने के लिए। फोर्मेट। मैं कुछ ऐसा कर रहा हूं जो हमारे कुछ अनुप्रयोगों के लिए पावरहेल कमांडलेट विकसित करना है - प्रशासकों को पावरहेल के माध्यम से उपयोगकर्ता प्रबंधन जैसे कार्यों को करने की अनुमति देने के लिए, लेकिन मुझे नहीं लगता कि यह वास्तव में आपका मतलब है।

3

यह मेरी विकास भूमिका के हिस्से के रूप में कभी भी उपयोग में नहीं आया है, लेकिन हर समय मुझे एक कार्य मिलता है कि मैं स्वचालित करने के लिए एक छोटा सा प्रोग्राम लिखूंगा, जिसे मैं अब शक्तियों में करने के लिए मजबूर करता हूं और इसमें कम समय लगता है ।

उदाहरण के लिए, मैंने हाल ही में xcopy का उपयोग करके एक सर्वर से दूसरे सर्वर पर फ़ाइलों को सौंपा और फ़ाइलों पर निर्माण तिथियों को संरक्षित करने के लिए विशेषता सेट करने के लिए भूल गए। बचाव के लिए पावरहेल। दस मिनट के भीतर मेरे पास एक लिपि लिखी और परीक्षण किया गया था जिसने निर्माण की तारीखों को प्रतिलिपि बनाये बिना फाइलों को दोबारा कॉपी किया था।

+0

वाह! क्या आप हमें स्क्रिप्ट दिखा सकते हैं? –

1

व्यक्तिगत रूप से, यदि आवश्यक हो तो मैं स्वचालित कार्यों के लिए पायथन का उपयोग कर रहा हूं। मुझे लगता है कि इस संयोजन में अधिकांश मेरी ज़रूरतों को शामिल किया गया है।

मैंने पावरशेल का परीक्षण किया, यह मेरे लिए ठीक लग रहा है, लेकिन यह एक नया उपकरण सीखने लायक नहीं है। इसके अलावा, PowerShell को मास्टर करने के लिए ऑनलाइन उत्कृष्ट संसाधन हैं यदि आपको (PowerShell Live), या यहां तक ​​कि recipes की आवश्यकता है ताकि आप अपने लिए संपूर्ण सीखने की वक्र को पास किए बिना कार्य पूरा कर सकें।

12

यह निश्चित रूप से सीखने लायक है। क्या आपने कभी टेक्स्ट कन्वर्ट किया है? क्या आपने कभी एक्सएमएल में हेरफेर किया है? क्या आपने कभी कुछ स्वचालित किया है? सरल उदाहरण। कोई आपको एक अल्पविराम सीमांकित फ़ाइल देता है और आपको कुछ अन्य टूल/डेटाबेस में आयात करने या अपने प्रोग्राम के लिए कुछ सूची बनाने के लिए इसमें से कुछ फ़ील्ड खींचने की आवश्यकता होती है।csv फ़ाइल की पहली पंक्ति में फ़ील्ड नाम है

हैं, तो आप PowerShell में निम्न कर सकते हैं:

$Data = import-csv "something.csv" 

फिर आप फ़ील्ड नाम का उपयोग कर अपने डेटा देख सकते हैं। यदि आपके पास एसएसएन नामक फ़ील्ड था तो आप $ डेटा [एन]। एसएसएन कह सकते हैं। आप आयात-सीएसवी कमांड को केवल उस चीज़ पर पाइप कर सकते हैं जिसने डेटा को संसाधित किया है जिसमें इसे एक्सएमएल/एचटीएमएल या कुछ भी कमांड के साथ आप चाहते हैं। पावरहेल इस तरह की चीजों से भरा है।

यह एक उपकरण है कि आप अपने कार्य केंद्र और सर्वर पर सामान की एक टन के लिए जबरदस्त उपयोग, पूरा नेट पुस्तकालय सहित देता है। यह एक ऐसा उपकरण है जिसे किसी प्रकार के व्यक्ति पर लक्षित नहीं किया जाता है। शायद यह है कि व्यवस्थापक प्रकारों को यह समझने में जल्दी हो गया है कि यह कितना उपयोगी है। मेरे द्वारा इसे हर दिन उपयोग किया जाता है।

वास्तव में प्रश्न पूछा उत्तर देने के लिए, मैं इसका इस्तेमाल चीजें मैं प्रतिदिन स्वचालित करने के लिए। मैं इसे अपनी एकल स्क्रिप्टिंग भाषा बनाने की कोशिश कर रहा हूं, जो मैंने पर्ल, पायथन, वीब्स्क्रिप्ट, .bat/.cmd में किए गए चीजों को बदल दिया है, और एक छोटी उपयोगिता/रूपांतरण प्रोग्राम जो मैं बनाऊंगा।

5

मैं अभी हाल ही में एक परियोजना है कि दूरस्थ सिस्टम पर कार्य निष्पादित करने के लिए एक PowerShell क्रम की मेजबानी के संस्करण 1 समाप्त हो गया। मैं पूरी तरह से असहमत हूं कि पावरशेल एक देव का उपकरण नहीं है।

एक .NET आधारित उत्पाद के रूप में, यह नेट प्रोग्रामिंग के लिए एक सीधा एनालॉग है। पूरे .NET कार्यक्रमों को पीएस में प्रोटोटाइप किया जा सकता है, साथ ही छोटे ऑनलाइनर विधियों की कार्यक्षमता का परीक्षण करने के लिए ... आदि। पीएस के लिए भाषा आर्किटेक्ट्स ने पीएस के सिंटैक्स को सी # के करीब होने के लिए विशेष रूप से डिजाइन किया है, इसका मतलब है कि पीएस स्क्रिप्ट और सी # कोड लिखते समय बहुत कम संदर्भ स्विच होता है (मुझे हाल ही में बहुत कुछ करना पड़ता था)। आप अपने ज्ञान पर निर्माण कर रहे हैं पहले से ही पीएस का उपयोग कर .NET भाषाओं के साथ जीता है।

एक स्वचालन उपकरण के रूप में, यह शानदार है। यह एक्सेस डब्लूएमआई, एडीओ, एडीएसआई, .NET, COM मूल रूप से, प्लस किसी अन्य चीज़ के साथ काम करने के लिए स्पॉट-वेल्डेड हो सकता है। यह अकेले किसी भी विंडोज स्वचालन को आसान और अधिक शक्तिशाली बनाता है। सिस्टम के उपयोग की मात्रा कुछ अन्य लैंगुग (वीबीस्क्रिप्ट, पायथन) द्वारा की जाती है लेकिन भाषा के उपयोग की आसानी और .NET ढांचे के लाभ का अर्थ है कि कुछ पीएस स्क्रिप्टिंग मौजूदा कोड (कोड पुन: उपयोग) के बजाय एक साथ जोड़ रही है पहले से ही वहाँ बाहर परियोजनाओं अपना समय (उदाहरण के लिए ...) लेखन अभी तक एक और फ़ाइल ज़िप करने दिनचर्या

बर्बाद कर रहे हैं उपकरणों का निर्माण कर रहे हैं कि (psake मन में आता है) देव के जीवन को आसान बनाने के लिए। पावरहेल सामुदायिक एक्सटेंशन जैसी परियोजनाएं शक्तिशाली विस्तार क्षमताओं को दिखाती हैं जो हर दिन देवताओं को प्राप्त कर सकती हैं। मैं ऊपर दिए गए कुछ पोस्टरों से सहमत हूं, मैं निर्माण कार्यों को स्थापित करने या देव कार्यों के लिए डेटा के साथ काम करने के लिए कुछ भी करने पर विचार करता हूं, यदि पीएस के साथ किया जा सकता है, तो तेज/आसान/बेहतर नहीं, बल्कि साथ ही।

जेम्स

0

मुझे ऐसा लगता है कि WPS अपने जीवन चीजें आप की जरूरत है ऐसा करने के लिए आसान बनाने के लिए एक तरीका है। मुझे नहीं लगता कि आप फायरफॉक्स या क्विकन में एकीकृत डब्ल्यूपीएस को एकीकृत करने जा रहे हैं लेकिन उन टीमों ने उन चीजों को करने के लिए इसका इस्तेमाल किया है .... संक्षेप में "डब्ल्यूपीएस आपका प्रोग्राम नहीं बनाता है, डब्ल्यूपीएस आपके प्रोग्राम को आसान बनाता है।" ; ओ)

12

मैं व्यापार के द्वारा एक व्यवस्थापक हूँ और बस "देव" दुनिया में शुरू होने वाले हैं, लेकिन मुझे लगता है कि PowerShell तरीके का एक संख्या में डेवलपर्स के लिए बहुत उपयोगी हो सकता है।

  1. टास्क स्वचालन -> ली होम्स (PowerShell टीम पर एक डेवलपर) BgShell नामक एक-का-प्रमाण अवधारणा है, जो मूल रूप से एक खिड़कियों में होस्ट PowerShell क्रम था एप्लिकेशन कि कीस्ट्रोक्स के लिए बात सुनी रूपों पोस्ट और कार्यों की शुरूआत उन पर आधारित PowerShell में लिखा है। इसमें कुछ क्लिपबोर्ड स्वचालन भी शामिल था।
  2. .NET ढांचे के लिए त्वरित पहुंच। आपको कुछ कार्यक्षमता का परीक्षण करने के लिए कुछ संकलित करने और चलाने या स्निपेट कंपाइलर जैसे किसी अन्य प्रोग्राम का उपयोग करने की आवश्यकता नहीं है। असेंबली को अपने पावरशेल सत्र में लोड करें और इसके साथ बातचीत करें। आपको अपनी ऑब्जेक्ट का पता लगाने के लिए पावरशेल (जैसे गेट-सदस्य) की सभी खोज योग्यता मिलती है।
  3. डोमेन विशिष्ट भाषाओं का निर्माण करना आसान है। जेम्स कोवाक्स ने पावरशेल के साथ साइक नामक एक साधारण बिल्ड स्क्रिप्ट भाषा लिखी।
  4. यह आपके आवेदन के लिए एक स्क्रिप्टिंग भाषा प्रदान कर सकता है। चूंकि पावरशेल 09 आम इंजीनियरिंग मानदंड का हिस्सा है, इसलिए बहुत सारे माइक्रोसॉफ्ट अनुप्रयोगों में पावरशेल के लिए इंटरफेस होंगे, और भाषा वाक्यविन्यास के साथ परिचितता बढ़ेगी। आप अपने एप्लिकेशन में पावरशेल रनटाइम को एम्बेड करके और अपने उपयोगकर्ताओं को एक स्क्रिप्टिंग इंटरफ़ेस प्रदान करके उस ज्ञान का लाभ उठा सकते हैं, यह चुनकर कि उन्हें किस ऑब्जेक्ट तक पहुंच होगी।
  5. उसी लाइन के साथ, यदि आपको अपने एप्लिकेशन के लिए कमांड लाइन इंटरफ़ेस बनाने की आवश्यकता है, तो PowerShell तर्कों को पार्स करने के लिए आवश्यक अंतर्निहित नलसाजी का एक बड़ा हिस्सा प्रदान करता है, और अन्य बुनियादी कार्य, केवल आपके लिए लिखने के लिए व्यवसाय तर्क छोड़ देता है , और अन्य अनुप्रयोगों के साथ एक सतत इंटरफेस प्रदान करना (उदाहरण के लिए, यदि आपके पास ऐसे उपयोगकर्ता खाते हैं जिन्हें प्रबंधित करने की आवश्यकता है (जो पहले से ही सक्रिय निर्देशिका के साथ एकीकृत नहीं है, तो एक व्यवस्थापक (क्वेस्ट एडी सीएमडीलेट्स और आपके एप्लिकेशन इंटरफ़ेस का उपयोग करके) प्राप्त कर सकता है- QADUser | नया-MyAplicationUser और किया जाना चाहिए। एक्सचेंज 2007 टीम ने यह बहुत अच्छा किया। सभी कार्यक्षमता PowerShell cmdlets पर आधारित है, जीयूआई cmdlets को कॉल करता है और उपयोगकर्ता को दिखाता है कि क्या चल रहा है, इसलिए वे उस के आधार पर स्क्रिप्ट बना सकते हैं
  6. यह बस अच्छा है! लगभग 250 लाइनों (टिप्पणियों सहित) में, रॉब फाउस्ट और जेफ हिक्स ने पावरशेल में एक नेटवर्क स्निफर लिखा। हल्के समस्या निवारण के लिए WinDump से उपयोग करना आसान है।
  7. समुदाय - डेवलपर्स समेत PowerShell के आस-पास एक महान समुदाय केंद्रित है। PowerShellCommunity.org पर और जानें।
2

@EdSwangren - यदि आपको मुख्य रूप से विंडोज प्लेटफॉर्म पर काम करना है और .NET स्पेस में काम करना है, तो मैं पूरी तरह से पावरशेल सीखने के लिए समय देने की सलाह दूंगा। यह आपके मौजूदा .NET अनुभव और कोड का लाभ उठा सकता है, COM, WMI, और ADSI के साथ काम करता है। यह आपको विंडोज प्लेटफॉर्म पर बस सब कुछ तक पहुंचने की अनुमति देता है (और यह केवल वी 1 है)। वी 2 सक्रिय विकास में है (सीटीपी 2 अब उपलब्ध है) और इसमें अधिक रिमोटिंग, एसटीए थ्रेडिंग और कई अन्य सुधार शामिल होंगे।

कई विक्रेता पावरशेल - से/n सॉफ्टवेयर नेटवर्किंग cmdlets प्रदान करने वाले सॉफ्टवेयर का समर्थन कर रहे हैं, साइट्रिक्स और वीएमवेयर में पावरशेल के माध्यम से प्रबंधन एपीआई प्रदान करते हैं।

6

आप पावरहेल से नफरत कर सकते हैं, और फिर भी यह आपके लिए अविश्वसनीय रूप से उपयोगी हो सकता है। मैं इसे छोटे लेकिन महत्वपूर्ण एक-लाइनर प्रकारों या बहुत मामूली स्क्रिप्ट में उपयोग करता हूं। यह वास्तव में सी # की तुलना नहीं कर सकता है, जैसे ही कोई जटिलता या महत्वपूर्ण संभावित पुन: उपयोग होता है, मैं सी # पर स्विच करता हूं। इसके अलावा, महत्वपूर्ण बात यह है कि पावरहेल इतना मजेदार है कि मैं हर बार खरोंच से समाधान फिर से बनाना चाहता हूं, अन्यथा मैं quirks भूल जाते हैं, जिनमें से कई हैं। मैंने सुना है कि अन्य लोग भी यह कहते हैं!

क्या इसके लिए वास्तव में अच्छा है के उदाहरण:

  1. तदर्थ पाठ प्रसंस्करण। कभी-कभी लोग मुझे एक बड़ा डेटा या एसक्यूएल फ़ाइल देते हैं, और वे चाहते हैं कि यह एक अलग रूप में हो, कभी-कभी जटिल तरीके से। इस अकेले ने मुझे अविश्वसनीय समय बचा लिया है। इसमें अक्सर बहुत सारे विज्ञापन-लाइनर और इंटरमीडिएट फाइलें शामिल होती हैं। अब लोग जानते हैं कि मैं ऐसा कर सकता हूं, वे ऐसी परियोजनाओं को मेरे पास सौंप देते हैं। या कुछ मामलों में वे इतने चिंतित हैं कि वे खुद के लिए पावरहेल सीखते हैं।

  2. जब मैं किसी ग्राहक साइट पर हूं और मुझे कुछ स्वचालित करने की आवश्यकता है, और यह एकमात्र टूल है जिसे मैं कर सकता हूं और/या मुझे अपना हाथ लेने की अनुमति है।

  3. वेब साइटों में लॉग इन करने के लिए छोटी लिपियों और जो भी पेज मुझे रूचि है या उस पर नेविगेट करें। मैंने मैन्युअल रूप से ऐसी वेबसाइट पर लॉग इन नहीं किया है जिसे मैं अब विकसित कर रहा हूं। ट्रिविअल, लेकिन यह एक कम परेशान करने वाला मस्तिष्क मृत कार्य है जिसके बारे में मुझे चिंता करने की ज़रूरत है।

  4. एक-लाइनर फ़ाइलों और परियोजनाओं की प्रतिलिपि बनाने और खोज और प्रतिस्थापित करने के लिए।

  5. कोई छोटी असामान्य जटिलताओं में शामिल होने पर छोटी लिपियों का निर्माण होता है।

  6. आदि। आप अपने सिस्टम में थोड़ी सी चीजें हैं, जहां आपको कुछ और ठीक करने के लिए सेवा को रोकने/शुरू करने की आवश्यकता है।

0

मैं इसे जितनी चीजें कर सकता हूं स्वचालित करने के लिए इसका उपयोग करता हूं। अनुप्रयोग विकास/परीक्षण को कम करने के लिए एक उदाहरण Web UI Automation है।

मैं विभिन्न प्रोग्रामों के लिए यादृच्छिक इनपुट फ़ाइलों को उत्पन्न करने के लिए इसका भी उपयोग करता हूं। उदाहरण के लिए, एक एप्लिकेशन एक एक्सएमएल फ़ाइल की अपेक्षा कर रहा है, और मेरे पास उस फ़ाइल को यादृच्छिक मानों और वर्तमान समय के आधार पर एक अद्वितीय आईडी के साथ बनाने के लिए एक स्क्रिप्ट है।

मैं इसका भारी उपयोग नहीं करता, लेकिन मैं इसे हर दिन उपयोग करता हूं।

0

मैं किसी भी 'दोबारा' नौकरी के लिए पीओएसएच का उपयोग करता हूं जो मुझे नेटवर्क, डोमेन, कंप्यूटर, एडी उपयोगकर्ता, टेक्स्ट संपादन, फाइल खोज, फाइल-सर्वर माइग्रेशन, निगरानी और मज़ेदार बनाने के लिए करना है!

0

मैं इसे एकाधिक प्रक्रिया शुरू करने के लिए उपयोग करता हूं। और कुछ चीज के लिए जो cmd cant कर सकते हैं।