2012-08-23 59 views
7

Mam problem z uruchomieniem niektórych naszych skryptów na serwerze zdalnym.Jak zmienić wersję Powershell CLR podczas zdalnego uruchamiania poleceń?

Potrzebujemy wszystkich sesji Powershell do załadowania wersji 4 CLR, ponieważ ładujemy nasze własne niestandardowe pliki binarne za pomocą naszych skryptów.

Robimy to od jakiegoś czasu (robimy to za pomocą zmodyfikowanego pliku powershell.exe.config podobnego do tego tutaj: How can I run PowerShell with the .NET 4 runtime?), a wszystko działa dobrze, gdy RDP jest w "Server1" i otwiera sesję Powershell. Zmienna $ PSVersionTable informuje nas, że CLR v4 jest załadowany.

Teraz próbujemy usprawnić rzeczy poprzez uruchomienie tych poleceń zdalnie prowadzimy do naszego problemu: po wpisaniu zdalnej sesji PowerShell na tym samym serwerze, $ PSVersionTable pokazuje tylko v2 ...

Tak Problem polega na tym, że jeśli otworzysz lokalną sesję Powershell na serwerze Serwer1, to załaduje ona wersję 4, ale jeśli zdalnie z serwera 2 do serwera 1, to tylko ładuje v2.

Ktoś wie, jak powiedzieć Powershell, aby używać CLR v4 do sesji zdalnych? Każda pomoc będzie doceniona!

Odpowiedz

9

spróbuj utworzyć plik c:\windows\System32\wsmprovhost.exe.config oraz plik c:\windows\SysWOW64\wsmprovhost.exe.config w 64-bitowym systemie operacyjnym takiego:

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

niesamowite, dziękuję chrześcijaninem! Dla każdego, kto znajdzie to w przyszłości, należy utworzyć ten plik w obu lokalizacjach. Powinieneś być na najlepszej drodze. – Richiban

+1

Plik powershell.exe.config musi znajdować się w dwóch miejscach .... C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ and C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ – Jonesome

Powiązane problemy