如何以编程方式确定Powershell中的supportedRuntime?

时间:2012-03-08 00:13:22

标签: powershell configuration

我查看过以前发布的问题,虽然我看到了相关问题,但我没有看到我即将提出的具体问题的答案。

我想要做的是以编程方式在PowerShell脚本中确定支持的运行时是什么(特别是在配置文件中定义)。例如,如果我的powershell.exe.config文件的内容是:

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

...我可以通过编程方式从PowerShell脚本中获取该信息(即支持版本'v4.0.30319'和'v2.0.50727')吗?

如果已在其他地方得到解答,请提前致谢并道歉。

编辑:为了清楚起见,我一直在寻找一种不依赖于读取配置文件本身的方法...以防这些值可以通过配置文件之外的某些方式设置(或默认)。是否有一个我可以查询的对象包含支持的运行时的信息,无论它们是如何指定的(配置文件或其他)?

2 个答案:

答案 0 :(得分:2)

直截了当的方式:

[xml](gc $pshome\powershell.exe.config) | 
    %{ $_.configuration.startup.supportedruntime} | 
         select -expand version

答案 1 :(得分:0)

或许$PSVersionTable.CLRVersion正是您所寻找的(例如2.0.50727.5420或4.0.30319.269)。 $PSVersionTable包含另一个有用的属性PSVersion(2.0或3.0)。还有一些其他版本。