2012-03-08 4 views
1

J'ai regardé les questions précédemment posées, et même si je vois des problèmes connexes, je ne vois pas la réponse à la question spécifique que je vais poser. Ce que je voudrais faire est de déterminer par programme dans un script PowerShell quelles sont les runtimes supportées (en particulier comme défini dans le fichier de configuration). Par exemple, si le contenu de mon fichier powershell.exe.config est la suivante:Comment déterminer par programme supportedRuntime dans Powershell?

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

... puis-je obtenir cette information par programmation à partir d'un script PowerShell (à savoir que de la v4.0.30319 "versions et « v2 .0.50727 'sont supportés)?

Merci d'avance et excuses si cela a déjà été répondu ailleurs. EDIT: Pour être clair, je cherchais un moyen qui ne dépendait pas de la lecture du fichier de configuration lui-même ... juste au cas où ces valeurs pourraient être définies (ou par défaut) par un moyen autre qu'un fichier de configuration . Y at-il un objet que je peux interroger qui contient des informations sur les runtimes supportés, quelle que soit la façon dont ils ont été spécifiés (fichier de configuration ou autre)?

Répondre

2

La façon simple:

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

Désolé, je n'étais probablement pas assez précis. Je me demandais s'il y avait un moyen de faire cela qui ne reposait pas sur la lecture du fichier de configuration lui-même. La raison pour cela est dans le cas où les versions d'exécution prises en charge pourraient être définies d'une autre manière que le fichier de configuration. – Patrick

+0

@patrick je suggère de fournir des exemples de ces autres façons de définir le supportedruntime. Je soupçonne que la plupart d'entre nous ne connaissons que la méthode du fichier de configuration. – x0n

+0

Salut, x0n. Honnêtement, je ne suis même pas sûr qu'il existe d'autres façons de définir l'exécution supportée. Il s'agit plus d'une question de: Puis-je par programme déterminer les runtimes pris en charge autre que la recherche d'un fichier de configuration? (Peut-être que la réponse est non ... Je ne suis pas sûr.) Merci. – Patrick

0

Peut-être $PSVersionTable.CLRVersion est ce que vous cherchez (par exemple 2.0.50727.5420 ou 4.0.30319.269). $PSVersionTable contient encore une autre propriété utile PSVersion (2.0 ou 3.0). Il y a aussi quelques autres versions.

Questions connexes