2012-03-08 1 views
1

私は過去に投稿された質問を見てきましたが、関連する問題を見ている間に、私がポーズしようとしている特定の質問に対する答えは表示されません。プログラムでpowershellでsupportedRuntimeを決定する方法は?

PowerShellスクリプトで、サポートされているランタイムが(特に構成ファイルで定義されている)何かをプログラムで判断します。

<?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の中からその情報を取得することができます。例えば、私のpowershell.exe.configファイルの内容は、このある場合.0.50727 'がサポートされていますか?

これはすでに他の場所で回答されている場合は、事前にお詫び申し上げます。

編集:設定ファイル自体を読むことに依存しない方法を探していました...設定ファイル以外の手段で値を設定(またはデフォルト)できる場合。どのように指定されたか(設定ファイルかどうか)にかかわらず、サポートされているランタイムの情報を含むクエリ可能なオブジェクトがありますか?

答えて

2

簡単な方法:おそらく

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

申し訳ありません。私は設定ファイル自体を読むことに依存していない、これを行う方法があるのだろうかと思っていました。これを行う理由は、サポートされているランタイムバージョンを設定ファイル以外の方法で定義できる場合です。 – Patrick

+0

@patrick私は、これらの他の方法で、サポートされているランタイムを設定する方法の例を提供することをお勧めします。私はほとんどの人が設定ファイルの方法しか知っていないと思う。 – x0n

+0

こんにちは、x0n。正直なところ、サポートされているランタイムを設定する他の方法があるかどうかはわかりません。これはもっと問題です。設定ファイルを探す以外に、プログラムでサポートされているランタイムを判断できますか? (たぶん答えはいいえ...私は確信していません。)ありがとう。 – Patrick

0

$PSVersionTable.CLRVersionは、あなたが(例えば2.0.50727.5420または4.0.30319.269)探しているものです。 $PSVersionTableには、もう1つの有用なプロパティPSVersion(2.0または3.0)が含まれています。そこには他にもいくつかのバージョンがあります。