2012-08-23 38 views
7

Tôi gặp sự cố khi cố gắng chạy một số tập lệnh của mình trên máy chủ từ xa.Làm thế nào để thay đổi phiên bản Powershell CLR khi chạy lệnh từ xa?

Chúng tôi cần tất cả các phiên Powershell để tải v4 của CLR, vì chúng tôi đang tải trong tệp nhị phân tùy chỉnh của riêng mình bằng các tập lệnh của chúng tôi.

Chúng tôi đã làm điều này một thời gian (chúng tôi làm như vậy bằng cách sử dụng một powershell.exe.config sửa đổi tương tự như ở đây: How can I run PowerShell with the .NET 4 runtime?), và tất cả là tốt khi bạn RDP vào 'Server1' và mở một phiên Powershell. Biến $ PSVersionTable cho chúng ta biết rằng CLR v4 được nạp.

Bây giờ chúng ta đang cố gắng sắp xếp mọi thứ bằng cách chạy các lệnh từ xa chúng tôi chạy vào vấn đề của chúng tôi: khi bạn nhập một phiên Powershell từ xa vào máy chủ cùng, $ PSVersionTable chỉ v2 lãm ...

Vì vậy, các vấn đề là nếu bạn mở một phiên Powershell địa phương trên Server1 nó tải v4, nhưng nếu bạn từ xa từ Server2 đến Server1 nó chỉ tải v2.

Bất kỳ ai biết cách yêu cầu Powershell sử dụng CLR v4 cho các phiên từ xa? Bất kì sự trợ giúp nào đều được đánh giá cao!

Trả lời

9

Cố gắng tạo ra một tập tin c:\windows\System32\wsmprovhost.exe.config và một tập tin c:\windows\SysWOW64\wsmprovhost.exe.config trong hệ điều hành 64bit như thế này:

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

tuyệt vời, cảm ơn bạn Christian! Đối với bất kỳ ai tìm thấy điều này trong tương lai, NB bạn phải tạo tệp này ở cả hai vị trí. Bạn nên được trên con đường của bạn. – Richiban

+1

Các powershell.exe.config cần phải ở hai nơi .... C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ và C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ – Jonesome

Các vấn đề liên quan