我正在尝试使用远程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 \微软\ 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:\ 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