如何在远程运行命令时更改Powershell CLR版本?

Ric*_*ban 9 clr powershell remoting

我在尝试在远程服务器上运行我们的一些脚本时遇到了问题.

我们需要所有Powershell会话来加载CLR的v4,因为我们正在使用我们的脚本加载我们自己的自定义二进制文件.

我们已经这样做了一段时间(我们使用类似于这里的修改过的powershell.exe.config这样做:如何使用.NET 4运行时运行PowerShell?),当你进入'Server1'的RDP时一切都很好并开启Powershell会议.变量$ PSVersionTable告诉我们CLR v4已加载.

既然我们正试图通过远程运行这些命令来简化操作,那么我们遇到了问题:当你在同一台服务器上输入一个远程Powershell会话时,$ PSVersionTable只显示v2 ......

所以问题是,如果你在Server1上打开一个本地Powershell会话,它会加载v4,但如果你从Server2远程到Server1它只加载v2.

有谁知道如何告诉Powershell使用CLR v4进行远程会话?任何帮助将非常感激!

CB.*_*CB. 11

尝试在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>
Run Code Online (Sandbox Code Playgroud)