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

时间:2012-08-23 08:52:34

标签: powershell clr remoting

我在尝试在远程服务器上运行某些脚本时遇到了问题。

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

我们已经这样做了一段时间(我们这样使用类似于这里的修改过的powershell.exe.config:How can I run PowerShell with the .NET 4 runtime?),当你进入'Server1'并打开一个Powershell时,一切都很顺利会话。变量$ PSVersionTable告诉我们CLR v4已加载。

现在我们试图通过远程运行这些命令来简化操作,我们遇到了问题:当您在同一服务器中输入远程Powershell会话时,$ PSVersionTable仅显示v2 ......

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

有人知道如何告诉Powershell使用CLR v4进行远程会话吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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>