7

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

関連する両方のマシンには .Net 2.0 および 4.0 があり、x86 および x64 ビットの powershell 実行可能ファイル用に powershell.exe.config が変更されています。また、サーバーの powershell レジストリ キーを変更しようとしました: HKLM:\Software\Microsoft\Powershell\1\PowerShellEngine\RuntimeVersion HKLM:\Software\Wow6432Node\Microsoft\Powershell\1\PowerShellEngine\RuntimeVersion

何かが欠けているに違いないのですが、それが何かわかりません。

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

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

1 に答える 1

7

解決策は、サーバー上にac:\windows\System32\wsmprovhost.exe.config ファイルと ac:\windows\SysWOW64\wsmprovhost.exe.config ファイルを作成することです.com/2045

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

wsmprovhost.exe を powershell.exe ファイルと同じように構成する必要があることを示唆する次の記事を見つけました。 http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html

于 2011-01-08T03:55:00.183 に答える