PowerShell (движок) отлично работает под .NET 4.0. PowerShell (консольный хост и ISE ) нет, просто потому что они были скомпилированы с более старыми версиями .NET. Существует параметр реестра, который изменит среду .NET, загруженную по всей системе , что, в свою очередь, позволит PowerShell использовать классы .NET 4.0:
reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
Чтобы обновить только ISE для использования .NET 4.0, вы можете изменить файл конфигурации ($ psHome \ powershell_ise.exe.config), чтобы иметь такой фрагмент:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
</configuration>
Вы можете создавать приложения .NET 4.0, которые вызывают PowerShell, используя API-интерфейс PowerShell (System.Management.Automation.PowerShell), но эти шаги помогут настроить встроенные хосты PowerShell для работы в .NET 4.0.
Удалите ключи реестра, когда они вам больше не нужны. Это ключи компьютера и принудительная миграция ВСЕХ приложений в .NET 4.0, даже приложений, использующих .net 2 и .net 3.5.