我已通过 WinRM 成功连接到远程 powershell 会话。它就像一个魅力。当我尝试导入一个使用为 .NET 框架 4 构建的程序集的模块时,问题就开始了。
在本地工作的时候也有同样的问题,但是通过调整powershell.exe的app.config很容易解决。尝试在远程主机上做同样的事情,但它不起作用。我猜 WinRM 有它自己的运行空间,与 powershell.exe 无关。
有没有办法配置 WinRM 使其在 .NET 4 下运行?
我已通过 WinRM 成功连接到远程 powershell 会话。它就像一个魅力。当我尝试导入一个使用为 .NET 框架 4 构建的程序集的模块时,问题就开始了。
在本地工作的时候也有同样的问题,但是通过调整powershell.exe的app.config很容易解决。尝试在远程主机上做同样的事情,但它不起作用。我猜 WinRM 有它自己的运行空间,与 powershell.exe 无关。
有没有办法配置 WinRM 使其在 .NET 4 下运行?
尝试在 64 位操作系统中创建 ac:\windows\System32\wsmprovhost.exe.config 文件和 ac:\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>
在远程会话中,您使用 $PSversionTable 看到了什么?我认为在 PowerSHell 2.0 中,远程运行空间被自动配置为使用 .NET Framework 2.0。当您在 PowerShell 中启用远程处理时,它会设置一个侦听器并将其连接到 PowerShell.exe。我还没有找到配置使用 .NET 4.0 的方法。但是,PowerSHell 3.0 似乎默认使用 .NET 4。