Powershell 2.0 Remoting при загрузке .Net 4.0 dll - PullRequest
7 голосов
/ 08 января 2011

Я пытаюсь загрузить сборку .Net 4.0, используя [Reflection.Assembly] :: LoadFrom, внутри удаленного сеанса Powershell 2.0.Он работает локально из-за изменения, внесенного мной в файл powershell.exe.config, но завершается с ошибкой «Эта сборка создается с помощью более новой среды выполнения ...» в удаленном сеансе.

Обе машиныучаствуют в .Net 2.0 и 4.0 и имеют замену powershell.exe.config для исполняемых файлов powershell x86 и x64 bit.Я также попытался изменить разделы реестра сервера PowerShell: HKLM: \ Software \ Microsoft \ Powershell \ 1 \ PowerShellEngine \ RuntimeVersion HKLM: \ Software \ Wow6432Node \ Microsoft \ Powershell \ 1 \ PowerShellEngine \ RuntimeVersion

Я долженпропустить что-то, но я не знаю, что это такое.

Редактировать: Ниже приведен пример кода, который я выполняю.

PS C:\>Enter-PSSession -ComputerName server1
[server1]: PS C:\stuff> dir *.dll | foreach { [Reflection.Assembly]::LoadFrom( $_.FullName ) }

1 Ответ

7 голосов
/ 08 января 2011

Решение состоит в том, чтобы создать файл ac: \ windows \ System32 \ wsmprovhost.exe.config и файл ac: \ windows \ SysWOW64 \ wsmprovhost.exe.config, на сервере , аналогичный файлу Я нашел по адресу: http://poshcode.com/2045

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

Я обнаружил следующую статью, в которой указывалось, что wsmprovhost.exe необходимо настроить точно так же, как файл powershell.exe. http://tfl09.blogspot.com/2010/08/using-later-versions-of-net-framework.html

...