Как изменить версию Powershell CLR при удаленном выполнении команд?


У меня возникла проблема с запуском некоторых наших скриптов на удаленном сервере.

Нам нужны все сеансы Powershell для загрузки v4 среды CLR, так как мы загружаем собственные пользовательские двоичные файлы с нашими сценариями.

Мы делаем это уже некоторое время (мы делаем это с помощью модифицированного powershell.exe.конфигурация аналогична здесь: Как я могу запустить PowerShell с .NET 4 runtime?), и все хорошо, когда вы RDP в 'Server1' и открыть сеанс Powershell. Переменная $PSVersionTable говорит нам: что CLR v4 загружен.

Теперь, когда мы пытаемся упростить процесс, выполняя эти команды удаленно, мы сталкиваемся с нашей проблемой: когда вы вводите удаленный сеанс Powershell на тот же сервер, $PSVersionTable показывает только v2...

Таким образом, проблема заключается в том, что если вы открываете локальный сеанс Powershell на сервере Server1, он загружает v4, но если вы удаляетесь от сервера Server2 к серверу Server1, он загружает только v2.

Кто-нибудь знает, как заставить Powershell использовать CLR v4 для удаленных сеансов? Любая помощь была бы очень ценю!

1 7

1 ответ:

Попробуйте создать файл c:\windows\System32\wsmprovhost.exe.config и файл c:\windows\SysWOW64\wsmprovhost.exe.config в 64-битной ОС следующим образом:

<?xml version="1.0"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
         <supportedRuntime version="v4.0.30319"/>        
         <supportedRuntime version="v2.0.50727"/>        
    </startup>
</configuration>