7

我正在尝试在远程 Powershell 2.0 会话中使用 [Reflection.Assembly]::LoadFrom 加载 .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 文件类似于我在以下位置找到的文件:http://poshcode .com/2045

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

我找到了以下文章,其中提示需要像 powershell.exe 文件一样配置 wsmprovhost.exe。 http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html

于 2011-01-08T03:55:00.183 回答