【问题标题】:How to programmatically determine supportedRuntime in Powershell?如何以编程方式确定 Powershell 中的supportedRuntime?
【发布时间】:2012-03-08 00:13:21
【问题描述】:

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

我想做的是在 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”版本)?

提前致谢,如果其他地方已经回答了这个问题,我们深表歉意。

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

【问题讨论】:

    标签: powershell configuration


    【解决方案1】:

    直截了当的方法:

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

    【讨论】:

    • 抱歉,我可能不够具体。我想知道是否有一种方法可以不依赖于读取配置文件本身。这样做的原因是,如果支持的运行时版本可以通过配置文件以外的其他方式定义。
    • @patrick 我建议提供这些其他方法的示例来设置支持的运行时。我怀疑我们大多数人只知道配置文件方法。
    • 嗨,x0n。老实说,我什至不确定还有其他方法可以设置支持的运行时。这更像是一个问题:除了查找配置文件之外,我能否以编程方式确定支持的运行时? (也许答案是否定的……我只是不确定。)谢谢。
    【解决方案2】:

    也许 $PSVersionTable.CLRVersion 就是您要查找的内容(例如 2.0.50727.5420 或 4.0.30319.269)。 $PSVersionTable 包含另一个有用的属性 PSVersion(2.0 或 3.0)。那里也有其他几个版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-14
      • 2015-07-21
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      相关资源
      最近更新 更多