2008-10-25 15 views
9

का उपयोग कर प्रशासनिक आदेश भेजें मेरे पास एक सी # विंडोज एप्लिकेशन है जो एक सेवा चलाता है। मैं अपनी रनिंग सेवा को प्रशासित करने के लिए कमांड लाइन प्रबंधन इंटरफ़ेस प्रदान करने के लिए पावरशेल का लाभ उठाना चाहता हूं।अपने सी # विंडोज सेवा में अपने पावरशेल सीएमडीलेट्स

देखने की मेरी बात से, मैं एक ला एक्सचेंज 2007

आप कैसे शुरू/क्रम में प्रबंधन cmdlets का डिजाइन करने के लिए पर कोई सुझाव या नमूना कोड है एक ही प्रशासनिक इंटरफेस की पेशकश करने के कोशिश कर रहा हूँ "कनेक्ट" प्रशासनिक आदेश पूछने या भेजने के लिए चल रही सेवा के लिए?

मैं Powerhell कमांड लाइन से सेवा के आंतरिक रनटाइम स्थिति तक कैसे पहुंच सकता हूं? उदाहरण के लिए, सीएमडीलेट निष्पादित होने पर मेरी विंडोज सेवा का कितना आउटबाउंड कनेक्शन उपयोग कर रहा है, यह जानने के लिए मैं गेट-कॉन्नेक्शनइन्फो नामक एक cmdlet को कार्यान्वित करना चाहता हूं।

एक उदाहरण के लिए एक व्यावहारिक उदाहरण या वेब लिंक स्वागत से अधिक होगा।

धन्यवाद, रॉबर्ट

+0

क्या सेवा उसी मशीन पर चलती है जिसमें स्क्रिप्ट (क्रियाएं) निष्पादित की जाएंगी? –

+0

इस मामले में हाँ, लेकिन अन्य परिदृश्यों में यह एक उत्पादन सर्वर पर चला सकता है और cmdlets को दूरस्थ रूप से सेवाओं का प्रबंधन करने के लिए sysadmins द्वारा उपयोग की जाने वाली एक अलग "ऑपरेशंस" मशीन पर स्थापित किया जा सकता है। –

उत्तर

1

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

2

एक समाधान अपने Windows सेवा WCF के माध्यम से एक प्रशासनिक इंटरफ़ेस का पर्दाफाश करने के लिए किया जाएगा। आपके PowerShell कमांड इस डब्लूसीएफ सेवा का उपयोग जानकारी खींचने और विंडोज सेवा को क्रियाओं को करने के लिए करेंगे।

0

विंडोज सेवा की आंतरिक स्थिति को उजागर करने का एक और तरीका दिमाग में आया। आप डब्लूएमआई के माध्यम से जानकारी का पर्दाफाश कर सकते हैं जिसे पावरशेल या आपके पावरशेल कमांड से उपभोग किया जा सकता है।

मुझे यकीन नहीं है कि क्या आप डब्लूएमआई के माध्यम से कार्य करने के लिए अपनी सेवा बताने में सक्षम हैं लेकिन आप कम से कम राज्य को खींचने में सक्षम होंगे।

0

विंडोज सेवा को PowerShell content provider बनाने का एक तीसरा विकल्प हो सकता है। हालांकि मैंने कभी खुद को नहीं बनाया है इसलिए मुझे यकीन नहीं है कि वे विंडोज सेवा में होस्टिंग के लिए उपयुक्त हैं, क्योंकि सेवा हर समय चल रही नहीं है।

संबंधित मुद्दे