9

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

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

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

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

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

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

4

1 回答 1

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>
于 2012-08-23T11:07:49.950 回答