पर पीएस 1 स्क्रिप्ट में लोड वेब प्रशासन, मेरे पास एक पावरशेल स्क्रिप्ट है जो आईआईएस में वेब साइट और वेब एप्लिकेशन सेटिंग्स को कॉन्फ़िगर करती है। इसलिए मैं वेब प्रशासन में cmdlets का उपयोग करता हूं। लेकिन इस स्क्रिप्ट को विंडोज 2008, विंडोज 7 और विंडोज 2008 आर 2 पर चलाने की जरूरत है। और मुझे उपयोगकर्ता से कम से कम झगड़ा चलाने के लिए इसे चलाने की ज़रूरत है।पावरशेल: आईआईएस 7 और आईआईएस 7.5
समस्या यह है कि विंडोज 7 और विंडोज 2008 आर 2 आईआईएस 7.5 का उपयोग करते हैं जो मॉड्यूल के रूप में स्थापित वेब प्रशासन के साथ आता है। विंडोज 2008 को हम तो सहित आईआईएस 7 PowerShell प्रदाता है, जिसमें एक तस्वीर के रूप में स्थापित करता है WebAdministration स्थापित किया है।
आयात मॉड्यूल लिपि में WebAdministration आईआईएस 7 पर चल रही है लेकिन आईआईएस 7.5 पर ठीक काम करता है और add- सहित pssnapin वेब प्रशासन आईआईएस 7.5 पर उड़ाता है लेकिन आईआईएस 7 पर ठीक काम करता है।
तो हमारा कामकाज प्रशासकों को स्क्रिप्ट चलाने से पहले पर्यावरण के लिए उपयुक्त कमांड के साथ मैन्युअल रूप से वेब प्रशासन को लोड करना है। लेकिन यह इष्टतम नहीं है क्योंकि यह भूलना आसान है कि कौन सा आदेश पर्यावरण में काम करता है। हम दो अलग-अलग स्क्रिप्ट बना सकते हैं, लेकिन इससे विकास के लिए रखरखाव की समस्या पैदा होती है।
क्या किसी ने इस समस्या को हल किया है? क्या कोई जानता है कि पर्यावरण की जांच कैसे करें और फिर पीएस स्क्रिप्ट के भीतर उचित cmdlet को कॉल करें?
--- उत्तर (मेरी स्थिति के लिए) ----
समाधान कोड और पूर्व कॉन्फ़िगर सांत्वना का एक संयोजन है। आईआईएस 7 पीओएसएच प्रदाता में एक डेस्कटॉप शॉर्टकट शामिल है जो वेब प्रशासन के साथ एक पीओएसएच कंसोल लॉन्च करता है। निम्नलिखित फ़ंक्शन के साथ मिलकर मेरी स्क्रिप्ट सभी तीन प्रणालियों पर एक आकर्षण की तरह चलती है।
Function Load-WebAdmin {
$webAdminModule = get-module -ListAvailable
| ? { $_.Name -eq "webadministration" }
If ($webAdminModule -ne $null) {
import-module WebAdministration
}
}
इसके साथ एकमात्र समस्या यह है कि ** आयात-मॉड्यूल ** मॉड्यूल पहले से लोड होने के बावजूद त्रुटि को उठाए बिना कई बार चलाया जा सकता है, ** add-pssnapin ** स्नैपिन होने पर त्रुटि उत्पन्न होगी पहले ही लोड हो चुका है एक व्यावहारिक समाधान के लिए प्रेरणा के लिए धन्यवाद। –
यह पीएस-स्नैपिन को दूसरी कॉल के साथ तय किया जा सकता है यह देखने के लिए कि क्या यह वर्तमान सत्र – GrayWizardx
में पहले ही लोड हो चुका है 1. आपका दूसरा ब्लॉक 'कहां 'के बजाय' चयन' का उपयोग क्यों करता है? 2. '$ है स्नैपिन 'खराब चुने हुए नाम की तरह लगता है। या तो ऐसा कुछ होना चाहिए जो सूची को वापस बुलियन में बदल देता है या नाम की शुरुआत में 'है' होना चाहिए। – jpmc26