2011-01-08 13 views
7

Próbuję załadować zestaw .Net 4.0, używając [Reflection.Assembly] :: LoadFrom, wewnątrz zdalnej sesji Powershell 2.0. Działa lokalnie, ze względu na zmianę, którą wprowadziłem do pliku powershell.exe.config, ale kończy się niepowodzeniem z "Ten zespół jest zbudowany przez nowszy czas działania nowszego ..." w zdalnej sesji.Powershell 2.0 Remoting ładowanie .Net 4.0 dll

Oba używane urządzenia mają .Net 2.0 i 4.0, i mają zmianę powershell.exe.config dla plików wykonywalnych PowerShell x86 i x64. Próbowałem zostały również, zmieniając klucze rejestru serwera PowerShell: HKLM: \ Software \ Microsoft \ PowerShell \ 1 \ PowerShellEngine \ RuntimeVersion HKLM: \ Software \ Wow6432Node \ Microsoft \ PowerShell \ 1 \ PowerShellEngine \ RuntimeVersion

muszę czegoś brakuje, ale nie wiem, co to jest.

Edytuj: Poniżej znajduje się przykład kodu, który wykonuję.

PS C:\>Enter-PSSession -ComputerName server1 
[server1]: PS C:\stuff> dir *.dll | foreach { [Reflection.Assembly]::LoadFrom($_.FullName) } 
+0

Proszę pokazać polecenie, którego używasz. –

Odpowiedz

7

Rozwiązaniem jest stworzenie ac: \ windows \ system32 \ pliku wsmprovhost.exe.config i AC: \ windows \ SysWOW64 \ wsmprovhost.exe.config pliku, na serwerze, podobnej do tej, Znalazłem na stronie: http://poshcode.com/2045

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

znalazłem poniższy artykuł, który sugerował wsmprovhost.exe która chciałaby być skonfigurowany tak samo jak plik powershell.exe. http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html