使用.NET framework 4编写的WinRM和powershell模块

使用.NET framework 4编写的WinRM和powershell模块,powershell,powershell-remoting,Powershell,Powershell Remoting,我已通过WinRM成功连接到远程powershell会话。它就像一个符咒。当我尝试导入使用为.NET framework 4构建的程序集的模块时,问题就出现了 在本地工作时也会遇到同样的问题,但通过调整powershell.exe的app.config可以轻松解决。尝试在远程主机上执行相同的操作,但不起作用。我猜WinRM有自己的运行空间,与powershell.exe无关 有没有办法配置WinRM,使其在.NET 4下运行?在远程会话中,您看到$PSversionTable有什么功能?我认为在

我已通过WinRM成功连接到远程powershell会话。它就像一个符咒。当我尝试导入使用为.NET framework 4构建的程序集的模块时,问题就出现了

在本地工作时也会遇到同样的问题,但通过调整powershell.exe的app.config可以轻松解决。尝试在远程主机上执行相同的操作,但不起作用。我猜WinRM有自己的运行空间,与powershell.exe无关


有没有办法配置WinRM,使其在.NET 4下运行?

在远程会话中,您看到$PSversionTable有什么功能?我认为在PowerSHell 2.0中,远程运行空间会自动配置为使用.NET Framework 2.0。当您在PowerShell中启用远程处理时,它会设置侦听器并将其连接到PowerShell.exe。我还没有找到配置为使用.NET4.0的方法。但是,看起来PowerSHell 3.0默认使用.NET 4。

尝试在64位操作系统中创建c:\windows\System32\wsmprovhost.exe.config文件和c:\windows\SysWOW64\wsmprovhost.exe.config文件,如下所示:

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


谢谢!它工作得很好(在明显的服务重启之后)。我也考虑过PowerShell3,但我不能等到RTM。如果你仍然有同样的问题,试试克里斯蒂安的解决方案,因为它是有效的。