我查看过以前发布的问题,虽然我看到了相关问题,但我没有看到我即将提出的具体问题的答案。
我想要做的是以编程方式在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')吗?
如果已在其他地方得到解答,请提前致谢并道歉。
编辑:为了清楚起见,我一直在寻找一种不依赖于读取配置文件本身的方法...以防这些值可以通过配置文件之外的某些方式设置(或默认)。是否有一个我可以查询的对象包含支持的运行时的信息,无论它们是如何指定的(配置文件或其他)?答案 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)。还有一些其他版本。