【问题标题】:How to change Powershell CLR version when running commands remotely?远程运行命令时如何更改 Powershell CLR 版本?
【发布时间】:2012-08-23 08:52:33
【问题描述】:

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

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

我们已经这样做了一段时间(我们使用类似于此处的修改过的 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 进行远程会话吗?任何帮助将不胜感激!

【问题讨论】:

    标签: powershell clr remoting


    【解决方案1】:

    尝试在 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>
    

    【讨论】:

    • 太棒了,谢谢克里斯蒂安!对于将来发现此文件的任何人,请注意您必须在两个位置创建此文件。你应该在路上了。
    • powershell.exe.config 需要在两个地方.... C:\Windows\System32\WindowsPowerShell\v1.0\ 和 C:\Windows\SysWOW64\WindowsPowerShell\v1.0 \
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2017-10-04
    • 2018-05-27
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多