2011-01-08 20 views
7

リモートPowershell 2.0セッション内で[Reflection.Assembly] :: LoadFromを使用して.Net 4.0アセンブリをロードしようとしています。これは、私がpowershell.exe.configファイルに行った変更のためにローカルで動作しますが、リモートセッションでは「このアセンブリは新しいランタイムでビルドされました...」例外が発生します。Powershell 2.0 Remoting .Net 4.0 dllをロードする

両方のマシンには.Net 2.0と4.0があり、x86およびx64ビットのpowershell実行ファイルにはpowershell.exe.configが変更されています。 Iまた、サーバーのPowerShellのレジストリキーを変更しようとしました: HKLM:\ SOFTWARE \マイクロソフト\のPowershell \ 1 \ PowerShellEngine \ RuntimeVersion HKLM:\ SOFTWARE \ WOW6432NODE \マイクロソフト\のPowershell \ 1 \ PowerShellEngine \ RuntimeVersion

私がしなければなりません何かを逃しているが、私はそれが何であるか分からない。

編集: 以下は、実行しているコードの例です。

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

使用しているコマンドを表示してください。 –

答えて

7

ソリューションは、ACを作成することです:のSystem32 \のwsmprovhost.exe.configファイルおよびAC \:\ WINDOWS \ WINDOWS \ SYSWOW64 \ 1に類似のサーバー、上のファイル、wsmprovhost.exe.config私はちょうどたpowershell.exeファイルのように設定する必要がwsmprovhost.exeを示唆した以下の記事を、見つけhttp://poshcode.com/2045

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

:私はで発見しました。 http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html