可以将PowerShell CLR版本指定为参数

时间:2015-05-13 10:18:07

标签: c# windows powershell

是否可以运行powershell传递我们需要的.NET CLR版本?

使用Powershell V2的系统默认使用CLR版本2,我们需要版本4.

我们可以将配置文件实现为:

  • C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \ PowerShell.exe.config
  • C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \ PowerShellISE.Exe.config
  • C:\的Windows \ Syswow64资料\ WindowsPowerShell \ V1.0 \ PowerShell.exe.config
  • C:\的Windows \ Syswow64资料\ WindowsPowerShell \ V1.0 \ PowerShellISE.exe.config

this

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

但我们不希望在客户服务器上进行更改,这可能会破坏依赖PowerShell的其他程序。

1 个答案:

答案 0 :(得分:1)

您可以在脚本中检查CLR版本,如果不满足最低要求,则退出并显示错误:

if ($PSVersionTable.CLRVersion.Major -lt 4) {
  Write-Error 'CLR Version 4.0 or newer required.'
  exit 1
}

或者,如果检查最小PowerShell版本也可以,那么您可以在脚本的第一行添加#requires directive

#requires -version 4.0