2012-08-23 26 views
7

मुझे रिमोट सर्वर पर हमारी कुछ स्क्रिप्ट चलाने की कोशिश करने में समस्या आई है।पावरहेल सीएलआर संस्करण को दूरस्थ रूप से आदेश चलाते समय कैसे बदलें?

हमें सीएलआर के v4 को लोड करने के लिए सभी पावरहेल सत्रों की आवश्यकता है, क्योंकि हम अपनी स्क्रिप्ट के साथ अपनी कस्टम बाइनरी में लोड हो रहे हैं।

हम कुछ समय के लिए ऐसा कर रहे हैं (हम यहां एक संशोधित powerhell.exe.config का उपयोग कर ऐसा करते हैं: How can I run PowerShell with the .NET 4 runtime?), और जब आप आरडीपी को 'सर्वर 1' में खोलते हैं और पावरहेल सत्र खोलते हैं तो सब ठीक है। परिवर्तनीय $ PSVersionTable हमें बताता है कि सीएलआर v4 लोड हो गया है।

अब है कि हम इन आदेशों दूर से चल रहा है हम अपने समस्या में पड़ द्वारा चीजों को कारगर बनाने के लिए कोशिश कर रहे हैं: जब आप एक ही सर्वर में एक दूरस्थ PowerShell सत्र में प्रवेश, $ PSVersionTable केवल वी 2 से पता चलता ...

तो समस्या यह है कि यदि आप सर्वर 1 पर स्थानीय पावरहेल सत्र खोलते हैं तो यह v4 लोड करता है, लेकिन यदि आप Server2 से Server1 तक दूरस्थ हैं तो यह केवल v2 लोड करता है।

कोई भी जानता है कि रिमोट सत्रों के लिए सीएलआर v4 का उपयोग करने के लिए पावरहेल को कैसे बताना है? कोई भी सहायताकाफी प्रशंसनीय होगी!

उत्तर

9

एक c:\windows\System32\wsmprovhost.exe.config फ़ाइल और इस तरह 64 बिट ओएस में एक c:\windows\SysWOW64\wsmprovhost.exe.config फ़ाइल बनाने का प्रयास करें:

<?xml version="1.0"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0.30319"/>   
     <supportedRuntime version="v2.0.50727"/>   
    </startup> 
</configuration> 
+0

कमाल है, आप ईसाई धन्यवाद! भविष्य में इसे ढूंढने वाले किसी भी व्यक्ति के लिए, एनबी आपको यह फ़ाइल दोनों स्थानों पर बनाना होगा। आपको अपने रास्ते पर होना चाहिए। – Richiban

+1

powerhell.exe.config को दो स्थानों पर होना आवश्यक है .... सी: \ विंडोज \ System32 \ WindowsPowerShell \ v1.0 \ और सी: \ विंडोज \ SysWOW64 \ WindowsPowerShell \ v1.0 \ – Jonesome