我在尝试在远程服务器上运行某些脚本时遇到了问题。
我们需要所有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进行远程会话吗?任何帮助将不胜感激!
答案 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>