2011-01-08 122 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更改。我也试图改变服务器的PowerShell注册表项:HKLM :\软件\微软\ 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

请显示您正在使用的命令.. – 2011-01-08 01:59:15

回答

7

的解决方案是创建c:\ WINDOWS \ SYSTEM32 \ wsmprovhost.exe.config文件和交流:\ 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> 

我发现下面的文章,这暗示wsmprovhost.exe需要进行配置,就像powershell.exe文件。 http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html