PoshCode Archive  Hex Artifact Content

Artifact 1108935c80fbb0ba6beaaecc78fb4525eb32a8c34a32f2b448c769e4145daa50:

  • File Show-MyDotNetVersions.ps1 — part of check-in [e53b56f275] at 2018-06-10 14:15:41 on branch trunk — Reads from the registry all the .Net versions installed on the local machine. (user: Tzvika N size: 6444)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 53  hell..# title: S
0030: 68 6f 77 2d 4d 79 44 6f 74 4e 65 74 56 65 72 73  how-MyDotNetVers
0040: 69 6f 6e 73 0d 0a 23 20 64 65 73 63 72 69 70 74  ions..# descript
0050: 69 6f 6e 3a 20 52 65 61 64 73 20 66 72 6f 6d 20  ion: Reads from 
0060: 74 68 65 20 72 65 67 69 73 74 72 79 20 61 6c 6c  the registry all
0070: 20 74 68 65 20 2e 4e 65 74 20 76 65 72 73 69 6f   the .Net versio
0080: 6e 73 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20  ns installed on 
0090: 74 68 65 20 6c 6f 63 61 6c 20 6d 61 63 68 69 6e  the local machin
00a0: 65 2e 0d 0a 23 20 76 65 72 73 69 6f 6e 3a 20 34  e...# version: 4
00b0: 2e 35 0d 0a 23 20 74 79 70 65 3a 20 66 75 6e 63  .5..# type: func
00c0: 74 69 6f 6e 0d 0a 23 20 61 75 74 68 6f 72 3a 20  tion..# author: 
00d0: 54 7a 76 69 6b 61 20 4e 0d 0a 23 20 6c 69 63 65  Tzvika N..# lice
00e0: 6e 73 65 3a 20 43 43 30 0d 0a 23 20 78 2d 70 6f  nse: CC0..# x-po
00f0: 73 68 63 6f 64 65 2d 69 64 3a 20 36 34 33 35 0d  shcode-id: 6435.
0100: 0a 23 20 78 2d 61 72 63 68 69 76 65 64 3a 20 32  .# x-archived: 2
0110: 30 31 36 2d 30 37 2d 30 34 54 30 33 3a 30 34 3a  016-07-04T03:04:
0120: 33 30 0d 0a 23 20 78 2d 70 75 62 6c 69 73 68 65  30..# x-publishe
0130: 64 3a 20 32 30 31 36 2d 30 37 2d 30 31 54 30 34  d: 2016-07-01T04
0140: 3a 34 34 3a 30 30 0d 0a 23 0d 0a 23 20 42 61 73  :44:00..#..# Bas
0150: 65 64 20 6f 6e 20 53 68 6f 77 2d 4d 79 44 6f 74  ed on Show-MyDot
0160: 4e 65 74 56 65 72 73 69 6f 6e 73 20 66 72 6f 6d  NetVersions from
0170: 20 54 7a 76 69 6b 61 20 4e 20 39 2e 20 49 20 6a   Tzvika N 9. I j
0180: 75 73 74 20 74 77 65 61 6b 65 64 20 74 68 65 20  ust tweaked the 
0190: 43 6f 64 65 20 61 6e 64 20 72 65 6d 6f 76 65 64  Code and removed
01a0: 20 74 68 65 20 48 54 4d 4c 20 70 61 72 74 73 0d   the HTML parts.
01b0: 0a 23 0d 0a 23 72 65 71 75 69 72 65 73 20 2d 56  .#..#requires -V
01c0: 65 72 73 69 6f 6e 20 33 0d 0a 0d 0a 23 72 65 67  ersion 3....#reg
01d0: 69 6f 6e 20 49 6e 66 6f 0d 0a 0d 0a 3c 23 0d 0a  ion Info....<#..
01e0: 09 09 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
01f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0200: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0210: 23 23 23 0d 0a 09 09 23 20 6d 6f 64 69 66 69 65  ###....# modifie
0220: 64 20 62 79 20 20 20 20 20 3a 20 4a 6f 65 72 67  d by     : Joerg
0230: 20 48 6f 63 68 77 61 6c 64 0d 0a 09 09 23 20 6c   Hochwald....# l
0240: 61 73 74 20 6d 6f 64 69 66 69 65 64 20 20 20 3a  ast modified   :
0250: 20 32 30 31 36 2d 30 37 2d 30 31 0d 0a 09 09 23   2016-07-01....#
0260: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0270: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0280: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0290: 0d 0a 0d 0a 09 09 53 75 70 70 6f 72 74 3a 20 68  ......Support: h
02a0: 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f  ttps://github.co
02b0: 6d 2f 6a 68 6f 63 68 77 61 6c 64 2f 4e 45 54 58  m/jhochwald/NETX
02c0: 2f 69 73 73 75 65 73 0d 0a 23 3e 0d 0a 0d 0a 23  /issues..#>....#
02d0: 65 6e 64 72 65 67 69 6f 6e 20 49 6e 66 6f 0d 0a  endregion Info..
02e0: 0d 0a 23 72 65 67 69 6f 6e 20 4c 69 63 65 6e 73  ..#region Licens
02f0: 65 0d 0a 0d 0a 3c 23 0d 0a 09 09 43 6f 70 79 72  e....<#....Copyr
0300: 69 67 68 74 20 28 63 29 20 32 30 31 32 2d 32 30  ight (c) 2012-20
0310: 31 36 2c 20 4e 45 54 2d 45 78 70 65 72 74 73 20  16, NET-Experts 
0320: 3c 68 74 74 70 3a 2f 77 77 77 2e 6e 65 74 2d 65  <http:/www.net-e
0330: 78 70 65 72 74 73 2e 6e 65 74 3e 2e 0d 0a 09 09  xperts.net>.....
0340: 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72  All rights reser
0350: 76 65 64 2e 0d 0a 0d 0a 09 09 52 65 64 69 73 74  ved.......Redist
0360: 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 73 65  ribution and use
0370: 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 62   in source and b
0380: 69 6e 61 72 79 20 66 6f 72 6d 73 2c 20 77 69 74  inary forms, wit
0390: 68 20 6f 72 20 77 69 74 68 6f 75 74 0d 0a 09 09  h or without....
03a0: 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 61 72  modification, ar
03b0: 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76  e permitted prov
03c0: 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 6f  ided that the fo
03d0: 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f  llowing conditio
03e0: 6e 73 20 61 72 65 20 6d 65 74 3a 0d 0a 0d 0a 09  ns are met:.....
03f0: 09 31 2e 20 52 65 64 69 73 74 72 69 62 75 74 69  .1. Redistributi
0400: 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 20 63 6f  ons of source co
0410: 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 74  de must retain t
0420: 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67  he above copyrig
0430: 68 74 20 6e 6f 74 69 63 65 2c 0d 0a 09 09 74 68  ht notice,....th
0440: 69 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69  is list of condi
0450: 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f  tions and the fo
0460: 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d  llowing disclaim
0470: 65 72 2e 0d 0a 0d 0a 09 09 32 2e 20 52 65 64 69  er.......2. Redi
0480: 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 62  stributions in b
0490: 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20  inary form must 
04a0: 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 61 62  reproduce the ab
04b0: 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f  ove copyright no
04c0: 74 69 63 65 2c 0d 0a 09 09 74 68 69 73 20 6c 69  tice,....this li
04d0: 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 73  st of conditions
04e0: 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69   and the followi
04f0: 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 20 69 6e  ng disclaimer in
0500: 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69   the documentati
0510: 6f 6e 0d 0a 09 09 61 6e 64 2f 6f 72 20 6f 74 68  on....and/or oth
0520: 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 6f  er materials pro
0530: 76 69 64 65 64 20 77 69 74 68 20 74 68 65 20 64  vided with the d
0540: 69 73 74 72 69 62 75 74 69 6f 6e 2e 0d 0a 0d 0a  istribution.....
0550: 09 09 33 2e 20 4e 65 69 74 68 65 72 20 74 68 65  ..3. Neither the
0560: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 70   name of the cop
0570: 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f  yright holder no
0580: 72 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 69  r the names of i
0590: 74 73 0d 0a 09 09 63 6f 6e 74 72 69 62 75 74 6f  ts....contributo
05a0: 72 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 74  rs may be used t
05b0: 6f 20 65 6e 64 6f 72 73 65 20 6f 72 20 70 72 6f  o endorse or pro
05c0: 6d 6f 74 65 20 70 72 6f 64 75 63 74 73 20 64 65  mote products de
05d0: 72 69 76 65 64 20 66 72 6f 6d 0d 0a 09 09 74 68  rived from....th
05e0: 69 73 20 73 6f 66 74 77 61 72 65 20 77 69 74 68  is software with
05f0: 6f 75 74 20 73 70 65 63 69 66 69 63 20 70 72 69  out specific pri
0600: 6f 72 20 77 72 69 74 74 65 6e 20 70 65 72 6d 69  or written permi
0610: 73 73 69 6f 6e 2e 0d 0a 0d 0a 09 09 54 48 49 53  ssion.......THIS
0620: 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f   SOFTWARE IS PRO
0630: 56 49 44 45 44 20 42 59 20 54 48 45 20 43 4f 50  VIDED BY THE COP
0640: 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41  YRIGHT HOLDERS A
0650: 4e 44 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20  ND CONTRIBUTORS 
0660: 22 41 53 20 49 53 22 0d 0a 09 09 41 4e 44 20 41  "AS IS"....AND A
0670: 4e 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d  NY EXPRESS OR IM
0680: 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53  PLIED WARRANTIES
0690: 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54  , INCLUDING, BUT
06a0: 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c   NOT LIMITED TO,
06b0: 20 54 48 45 0d 0a 09 09 49 4d 50 4c 49 45 44 20   THE....IMPLIED 
06c0: 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45  WARRANTIES OF ME
06d0: 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e  RCHANTABILITY AN
06e0: 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20  D FITNESS FOR A 
06f0: 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f  PARTICULAR PURPO
0700: 53 45 0d 0a 09 09 41 52 45 20 44 49 53 43 4c 41  SE....ARE DISCLA
0710: 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e  IMED. IN NO EVEN
0720: 54 20 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59  T SHALL THE COPY
0730: 52 49 47 48 54 20 48 4f 4c 44 45 52 20 4f 52 20  RIGHT HOLDER OR 
0740: 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 42 45 0d  CONTRIBUTORS BE.
0750: 0a 09 09 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e  ...LIABLE FOR AN
0760: 59 20 44 49 52 45 43 54 2c 20 49 4e 44 49 52 45  Y DIRECT, INDIRE
0770: 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20  CT, INCIDENTAL, 
0780: 53 50 45 43 49 41 4c 2c 20 45 58 45 4d 50 4c 41  SPECIAL, EXEMPLA
0790: 52 59 2c 20 4f 52 0d 0a 09 09 43 4f 4e 53 45 51  RY, OR....CONSEQ
07a0: 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20  UENTIAL DAMAGES 
07b0: 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20  (INCLUDING, BUT 
07c0: 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20  NOT LIMITED TO, 
07d0: 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 0d 0a  PROCUREMENT OF..
07e0: 09 09 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f  ..SUBSTITUTE GOO
07f0: 44 53 20 4f 52 20 53 45 52 56 49 43 45 53 3b 20  DS OR SERVICES; 
0800: 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54  LOSS OF USE, DAT
0810: 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f  A, OR PROFITS; O
0820: 52 20 42 55 53 49 4e 45 53 53 0d 0a 09 09 49 4e  R BUSINESS....IN
0830: 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45  TERRUPTION) HOWE
0840: 56 45 52 20 43 41 55 53 45 44 20 41 4e 44 20 4f  VER CAUSED AND O
0850: 4e 20 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 20  N ANY THEORY OF 
0860: 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48  LIABILITY, WHETH
0870: 45 52 20 49 4e 0d 0a 09 09 43 4f 4e 54 52 41 43  ER IN....CONTRAC
0880: 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c  T, STRICT LIABIL
0890: 49 54 59 2c 20 4f 52 20 54 4f 52 54 20 28 49 4e  ITY, OR TORT (IN
08a0: 43 4c 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e  CLUDING NEGLIGEN
08b0: 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29  CE OR OTHERWISE)
08c0: 0d 0a 09 09 41 52 49 53 49 4e 47 20 49 4e 20 41  ....ARISING IN A
08d0: 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48  NY WAY OUT OF TH
08e0: 45 20 55 53 45 20 4f 46 20 54 48 49 53 20 53 4f  E USE OF THIS SO
08f0: 46 54 57 41 52 45 2c 20 45 56 45 4e 20 49 46 20  FTWARE, EVEN IF 
0900: 41 44 56 49 53 45 44 20 4f 46 0d 0a 09 09 54 48  ADVISED OF....TH
0910: 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46  E POSSIBILITY OF
0920: 20 53 55 43 48 20 44 41 4d 41 47 45 2e 0d 0a 0d   SUCH DAMAGE....
0930: 0a 09 09 42 79 20 75 73 69 6e 67 20 74 68 65 20  ...By using the 
0940: 53 6f 66 74 77 61 72 65 2c 20 79 6f 75 20 61 67  Software, you ag
0950: 72 65 65 20 74 6f 20 74 68 65 20 4c 69 63 65 6e  ree to the Licen
0960: 73 65 2c 20 54 65 72 6d 73 20 61 6e 64 20 43 6f  se, Terms and Co
0970: 6e 64 69 74 69 6f 6e 73 20 61 62 6f 76 65 21 0d  nditions above!.
0980: 0a 23 3e 0d 0a 0d 0a 23 65 6e 64 72 65 67 69 6f  .#>....#endregio
0990: 6e 20 4c 69 63 65 6e 73 65 0d 0a 0d 0a 66 75 6e  n License....fun
09a0: 63 74 69 6f 6e 20 67 6c 6f 62 61 6c 3a 47 65 74  ction global:Get
09b0: 2d 49 6e 73 74 61 6c 6c 65 64 44 6f 74 4e 65 74  -InstalledDotNet
09c0: 56 65 72 73 69 6f 6e 73 20 7b 0d 0a 09 3c 23 0d  Versions {...<#.
09d0: 0a 09 09 09 2e 53 59 4e 4f 50 53 49 53 0d 0a 09  .....SYNOPSIS...
09e0: 09 09 53 68 6f 77 73 20 61 6c 6c 20 69 6e 73 74  ..Shows all inst
09f0: 61 6c 6c 65 64 20 2e 4e 65 74 20 76 65 72 73 69  alled .Net versi
0a00: 6f 6e 73 0d 0a 0d 0a 09 09 09 2e 44 45 53 43 52  ons........DESCR
0a10: 49 50 54 49 4f 4e 0d 0a 09 09 09 53 68 6f 77 73  IPTION.....Shows
0a20: 20 61 6c 6c 20 2e 4e 65 74 20 76 65 72 73 69 6f   all .Net versio
0a30: 6e 73 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20  ns installed on 
0a40: 74 68 65 20 6c 6f 63 61 6c 20 73 79 73 74 65 6d  the local system
0a50: 0d 0a 0d 0a 09 09 09 2e 45 58 41 4d 50 4c 45 0d  ........EXAMPLE.
0a60: 0a 09 09 09 50 53 20 43 3a 5c 3e 20 47 65 74 2d  ....PS C:\> Get-
0a70: 49 6e 73 74 61 6c 6c 65 64 44 6f 74 4e 65 74 56  InstalledDotNetV
0a80: 65 72 73 69 6f 6e 73 0d 0a 0d 0a 09 09 09 56 65  ersions.......Ve
0a90: 72 73 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20  rsion           
0aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75                Fu
0ae0: 6c 6c 56 65 72 73 69 6f 6e 0d 0a 09 09 09 2d 2d  llVersion.....--
0af0: 2d 2d 2d 2d 2d 20 20 20 20 20 20 20 20 20 20 20  -----           
0b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d                --
0b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 09 09 32 2e  ---------.....2.
0b50: 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  0               
0b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 2e                2.
0ba0: 30 2e 35 30 37 32 37 2e 35 34 32 30 0d 0a 09 09  0.50727.5420....
0bb0: 09 33 2e 30 20 20 20 20 20 20 20 20 20 20 20 20  .3.0            
0bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c00: 20 33 2e 30 2e 33 30 37 32 39 2e 35 34 32 30 0d   3.0.30729.5420.
0c10: 0a 09 09 09 33 2e 35 20 20 20 20 20 20 20 20 20  ....3.5         
0c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c60: 20 20 20 20 33 2e 35 2e 33 30 37 32 39 2e 35 34      3.5.30729.54
0c70: 32 30 0d 0a 09 09 09 34 2e 30 20 20 20 20 20 20  20.....4.0      
0c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cc0: 20 20 20 20 20 20 20 34 2e 30 2e 30 2e 30 0d 0a         4.0.0.0..
0cd0: 09 09 09 34 2e 35 2b 20 20 20 20 20 20 20 20 20  ...4.5+         
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d20: 20 20 20 34 2e 36 2e 31 0d 0a 0d 0a 09 09 09 44     4.6.1.......D
0d30: 65 73 63 72 69 70 74 69 6f 6e 0d 0a 09 09 09 2d  escription.....-
0d40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 09 09 53  ----------.....S
0d50: 68 6f 77 73 20 61 6c 6c 20 2e 4e 65 74 20 76 65  hows all .Net ve
0d60: 72 73 69 6f 6e 73 20 69 6e 73 74 61 6c 6c 65 64  rsions installed
0d70: 20 6f 6e 20 74 68 65 20 6c 6f 63 61 6c 20 73 79   on the local sy
0d80: 73 74 65 6d 0d 0a 0d 0a 09 09 09 2e 4e 4f 54 45  stem........NOTE
0d90: 53 0d 0a 09 09 09 42 61 73 65 64 20 6f 6e 20 53  S.....Based on S
0da0: 68 6f 77 2d 4d 79 44 6f 74 4e 65 74 56 65 72 73  how-MyDotNetVers
0db0: 69 6f 6e 73 20 66 72 6f 6d 20 54 7a 76 69 6b 61  ions from Tzvika
0dc0: 20 4e 20 39 2e 20 49 20 6a 75 73 74 20 74 77 65   N 9. I just twe
0dd0: 61 6b 65 64 20 74 68 65 20 43 6f 64 65 20 61 6e  aked the Code an
0de0: 64 20 72 65 6d 6f 76 65 64 20 74 68 65 20 48 54  d removed the HT
0df0: 4d 4c 20 70 61 72 74 73 0d 0a 09 09 09 41 6c 6c  ML parts.....All
0e00: 20 56 65 72 73 69 6f 6e 73 20 61 66 74 65 72 20   Versions after 
0e10: 2e 4e 45 54 20 34 2e 35 20 77 69 6c 6c 20 68 61  .NET 4.5 will ha
0e20: 76 65 20 74 68 65 20 56 65 72 73 69 6f 6e 20 34  ve the Version 4
0e30: 2e 35 2b 20 61 6e 64 20 73 68 6f 77 20 74 68 65  .5+ and show the
0e40: 20 66 75 6c 6c 20 76 65 72 73 69 6f 6e 20 69 6e   full version in
0e50: 20 74 68 65 20 46 75 6c 6c 56 65 72 73 69 6f 6e   the FullVersion
0e60: 0d 0a 0d 0a 09 09 09 2e 4c 49 4e 4b 0d 0a 09 09  ........LINK....
0e70: 09 68 74 74 70 3a 2f 2f 70 6f 73 68 63 6f 64 65  .http://poshcode
0e80: 2e 6f 72 67 2f 36 34 30 33 0d 0a 09 23 3e 0d 0a  .org/6403...#>..
0e90: 0d 0a 09 5b 43 6d 64 6c 65 74 42 69 6e 64 69 6e  ...[CmdletBindin
0ea0: 67 28 29 5d 0d 0a 09 5b 4f 75 74 70 75 74 54 79  g()]...[OutputTy
0eb0: 70 65 28 5b 53 79 73 74 65 6d 2e 4f 62 6a 65 63  pe([System.Objec
0ec0: 74 5d 29 5d 0d 0a 09 70 61 72 61 6d 20 28 29 0d  t])]...param ().
0ed0: 0a 0d 0a 09 42 45 47 49 4e 20 7b 0d 0a 09 09 24  ....BEGIN {....$
0ee0: 52 65 67 69 73 74 72 79 42 61 73 65 20 3d 20 27  RegistryBase = '
0ef0: 48 4b 4c 4d 3a 5c 53 4f 46 54 57 41 52 45 5c 4d  HKLM:\SOFTWARE\M
0f00: 69 63 72 6f 73 6f 66 74 5c 4e 45 54 20 46 72 61  icrosoft\NET Fra
0f10: 6d 65 77 6f 72 6b 20 53 65 74 75 70 5c 4e 44 50  mework Setup\NDP
0f20: 27 0d 0a 09 09 24 52 65 67 69 73 74 72 79 44 6f  '....$RegistryDo
0f30: 74 4e 65 74 32 30 20 3d 20 22 24 28 24 52 65 67  tNet20 = "$($Reg
0f40: 69 73 74 72 79 42 61 73 65 29 5c 76 32 2e 30 2a  istryBase)\v2.0*
0f50: 22 0d 0a 09 09 24 52 65 67 69 73 74 72 79 44 6f  "....$RegistryDo
0f60: 74 4e 65 74 33 30 20 3d 20 22 24 28 24 52 65 67  tNet30 = "$($Reg
0f70: 69 73 74 72 79 42 61 73 65 29 5c 76 33 2e 30 22  istryBase)\v3.0"
0f80: 0d 0a 09 09 24 52 65 67 69 73 74 72 79 44 6f 74  ....$RegistryDot
0f90: 4e 65 74 33 35 20 3d 20 22 24 28 24 52 65 67 69  Net35 = "$($Regi
0fa0: 73 74 72 79 42 61 73 65 29 5c 76 33 2e 35 22 0d  stryBase)\v3.5".
0fb0: 0a 09 09 24 52 65 67 69 73 74 72 79 44 6f 74 4e  ...$RegistryDotN
0fc0: 65 74 34 30 20 3d 20 22 24 28 24 52 65 67 69 73  et40 = "$($Regis
0fd0: 74 72 79 42 61 73 65 29 5c 76 34 2e 30 5c 43 6c  tryBase)\v4.0\Cl
0fe0: 69 65 6e 74 22 0d 0a 09 09 24 52 65 67 69 73 74  ient"....$Regist
0ff0: 72 79 44 6f 74 4e 65 74 34 35 20 3d 20 22 24 28  ryDotNet45 = "$(
1000: 24 52 65 67 69 73 74 72 79 42 61 73 65 29 5c 76  $RegistryBase)\v
1010: 34 5c 46 75 6c 6c 22 0d 0a 09 7d 0d 0a 0d 0a 09  4\Full"...}.....
1020: 50 52 4f 43 45 53 53 20 7b 0d 0a 09 09 23 20 2e  PROCESS {....# .
1030: 4e 65 74 20 32 2e 30 0d 0a 09 09 69 66 20 28 54  Net 2.0....if (T
1040: 65 73 74 2d 50 61 74 68 20 24 52 65 67 69 73 74  est-Path $Regist
1050: 72 79 44 6f 74 4e 65 74 32 30 29 20 7b 0d 0a 09  ryDotNet20) {...
1060: 09 09 24 44 6f 74 4e 65 74 32 30 20 3d 20 28 28  ..$DotNet20 = ((
1070: 47 65 74 2d 49 74 65 6d 50 72 6f 70 65 72 74 79  Get-ItemProperty
1080: 20 2d 50 61 74 68 20 24 52 65 67 69 73 74 72 79   -Path $Registry
1090: 44 6f 74 4e 65 74 32 30 20 2d 4e 61 6d 65 20 56  DotNet20 -Name V
10a0: 65 72 73 69 6f 6e 29 2e 56 65 72 73 69 6f 6e 29  ersion).Version)
10b0: 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 23 20 2e 4e 65  ....}......# .Ne
10c0: 74 20 33 2e 30 0d 0a 09 09 69 66 20 28 54 65 73  t 3.0....if (Tes
10d0: 74 2d 50 61 74 68 20 24 52 65 67 69 73 74 72 79  t-Path $Registry
10e0: 44 6f 74 4e 65 74 33 30 29 20 7b 0d 0a 09 09 09  DotNet30) {.....
10f0: 24 44 6f 74 4e 65 74 33 30 20 3d 20 28 28 47 65  $DotNet30 = ((Ge
1100: 74 2d 49 74 65 6d 50 72 6f 70 65 72 74 79 20 2d  t-ItemProperty -
1110: 50 61 74 68 20 24 52 65 67 69 73 74 72 79 44 6f  Path $RegistryDo
1120: 74 4e 65 74 33 30 20 2d 4e 61 6d 65 20 56 65 72  tNet30 -Name Ver
1130: 73 69 6f 6e 29 2e 56 65 72 73 69 6f 6e 29 0d 0a  sion).Version)..
1140: 09 09 7d 0d 0a 0d 0a 09 09 23 20 2e 4e 65 74 20  ..}......# .Net 
1150: 33 2e 35 0d 0a 09 09 69 66 20 28 54 65 73 74 2d  3.5....if (Test-
1160: 50 61 74 68 20 24 52 65 67 69 73 74 72 79 44 6f  Path $RegistryDo
1170: 74 4e 65 74 33 35 29 20 7b 0d 0a 09 09 09 24 44  tNet35) {.....$D
1180: 6f 74 4e 65 74 33 35 20 3d 20 28 28 47 65 74 2d  otNet35 = ((Get-
1190: 49 74 65 6d 50 72 6f 70 65 72 74 79 20 2d 50 61  ItemProperty -Pa
11a0: 74 68 20 24 52 65 67 69 73 74 72 79 44 6f 74 4e  th $RegistryDotN
11b0: 65 74 33 35 20 2d 4e 61 6d 65 20 56 65 72 73 69  et35 -Name Versi
11c0: 6f 6e 29 2e 56 65 72 73 69 6f 6e 29 0d 0a 09 09  on).Version)....
11d0: 7d 0d 0a 0d 0a 09 09 23 20 2e 4e 65 74 20 34 2e  }......# .Net 4.
11e0: 30 0d 0a 09 09 69 66 20 28 54 65 73 74 2d 50 61  0....if (Test-Pa
11f0: 74 68 20 24 52 65 67 69 73 74 72 79 44 6f 74 4e  th $RegistryDotN
1200: 65 74 34 30 29 20 7b 0d 0a 09 09 09 24 44 6f 74  et40) {.....$Dot
1210: 4e 65 74 34 30 20 3d 20 28 28 47 65 74 2d 49 74  Net40 = ((Get-It
1220: 65 6d 50 72 6f 70 65 72 74 79 20 2d 50 61 74 68  emProperty -Path
1230: 20 24 52 65 67 69 73 74 72 79 44 6f 74 4e 65 74   $RegistryDotNet
1240: 34 30 20 2d 4e 61 6d 65 20 56 65 72 73 69 6f 6e  40 -Name Version
1250: 29 2e 56 65 72 73 69 6f 6e 29 0d 0a 09 09 7d 0d  ).Version)....}.
1260: 0a 0d 0a 09 09 23 20 2e 4e 65 74 20 34 2e 35 20  .....# .Net 4.5 
1270: 61 6e 64 20 6c 61 74 65 72 0d 0a 09 09 69 66 20  and later....if 
1280: 28 54 65 73 74 2d 50 61 74 68 20 24 52 65 67 69  (Test-Path $Regi
1290: 73 74 72 79 44 6f 74 4e 65 74 34 35 29 20 7b 0d  stryDotNet45) {.
12a0: 0a 09 09 09 24 76 65 72 44 57 6f 72 64 20 3d 20  ....$verDWord = 
12b0: 28 28 47 65 74 2d 49 74 65 6d 50 72 6f 70 65 72  ((Get-ItemProper
12c0: 74 79 20 2d 50 61 74 68 20 24 52 65 67 69 73 74  ty -Path $Regist
12d0: 72 79 44 6f 74 4e 65 74 34 35 20 2d 4e 61 6d 65  ryDotNet45 -Name
12e0: 20 52 65 6c 65 61 73 65 29 2e 52 65 6c 65 61 73   Release).Releas
12f0: 65 29 0d 0a 0d 0a 09 09 09 73 77 69 74 63 68 20  e).......switch 
1300: 28 24 76 65 72 44 57 6f 72 64 29 20 7b 0d 0a 09  ($verDWord) {...
1310: 09 09 09 33 37 38 33 38 39 20 7b 20 24 44 6f 74  ...378389 { $Dot
1320: 4e 65 74 34 35 20 3d 20 27 34 2e 35 27 0d 0a 09  Net45 = '4.5'...
1330: 09 09 09 62 72 65 61 6b 20 7d 0d 0a 09 09 09 09  ...break }......
1340: 33 37 38 36 37 35 20 7b 20 24 44 6f 74 4e 65 74  378675 { $DotNet
1350: 34 35 20 3d 20 27 34 2e 35 2e 31 27 0d 0a 09 09  45 = '4.5.1'....
1360: 09 09 62 72 65 61 6b 20 7d 0d 0a 09 09 09 09 33  ..break }......3
1370: 37 38 37 35 38 20 7b 20 24 44 6f 74 4e 65 74 34  78758 { $DotNet4
1380: 35 20 3d 20 27 34 2e 35 2e 31 27 0d 0a 09 09 09  5 = '4.5.1'.....
1390: 09 62 72 65 61 6b 20 7d 0d 0a 09 09 09 09 33 37  .break }......37
13a0: 39 38 39 33 20 7b 20 24 44 6f 74 4e 65 74 34 35  9893 { $DotNet45
13b0: 20 3d 20 27 34 2e 35 2e 32 27 0d 0a 09 09 09 09   = '4.5.2'......
13c0: 62 72 65 61 6b 20 7d 0d 0a 09 09 09 09 33 39 33  break }......393
13d0: 32 39 35 20 7b 20 24 44 6f 74 4e 65 74 34 35 20  295 { $DotNet45 
13e0: 3d 20 27 34 2e 36 27 0d 0a 09 09 09 09 62 72 65  = '4.6'......bre
13f0: 61 6b 20 7d 0d 0a 09 09 09 09 33 39 33 32 39 37  ak }......393297
1400: 20 7b 20 24 44 6f 74 4e 65 74 34 35 20 3d 20 27   { $DotNet45 = '
1410: 34 2e 36 27 0d 0a 09 09 09 09 62 72 65 61 6b 20  4.6'......break 
1420: 7d 0d 0a 09 09 09 09 33 39 34 32 35 34 20 7b 20  }......394254 { 
1430: 24 44 6f 74 4e 65 74 34 35 20 3d 20 27 34 2e 36  $DotNet45 = '4.6
1440: 2e 31 27 0d 0a 09 09 09 09 62 72 65 61 6b 20 7d  .1'......break }
1450: 0d 0a 09 09 09 09 33 39 34 32 37 31 20 7b 20 24  ......394271 { $
1460: 44 6f 74 4e 65 74 34 35 20 3d 20 27 34 2e 36 2e  DotNet45 = '4.6.
1470: 31 27 0d 0a 09 09 09 09 62 72 65 61 6b 20 7d 0d  1'......break }.
1480: 0a 09 09 09 09 33 39 34 37 34 37 20 7b 20 24 44  .....394747 { $D
1490: 6f 74 4e 65 74 34 35 20 3d 20 27 34 2e 36 2e 32  otNet45 = '4.6.2
14a0: 27 0d 0a 09 09 09 09 62 72 65 61 6b 20 7d 0d 0a  '......break }..
14b0: 09 09 09 09 33 39 34 37 34 38 20 7b 20 24 44 6f  ....394748 { $Do
14c0: 74 4e 65 74 34 35 20 3d 20 27 34 2e 36 2e 32 27  tNet45 = '4.6.2'
14d0: 0d 0a 09 09 09 09 62 72 65 61 6b 20 7d 0d 0a 09  ......break }...
14e0: 09 09 09 64 65 66 61 75 6c 74 20 7b 20 24 44 6f  ...default { $Do
14f0: 74 4e 65 74 34 35 20 3d 20 27 34 2e 35 27 20 7d  tNet45 = '4.5' }
1500: 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a 09  .....}....}.....
1510: 09 24 64 6f 74 4e 65 74 50 72 6f 70 65 72 74 79  .$dotNetProperty
1520: 32 30 20 3d 20 5b 6f 72 64 65 72 65 64 5d 40 7b  20 = [ordered]@{
1530: 0d 0a 09 09 09 56 65 72 73 69 6f 6e 20 20 20 20  .....Version    
1540: 20 3d 20 27 32 2e 30 27 0d 0a 09 09 09 46 75 6c   = '2.0'.....Ful
1550: 6c 56 65 72 73 69 6f 6e 20 3d 20 24 44 6f 74 4e  lVersion = $DotN
1560: 65 74 32 30 0d 0a 09 09 7d 0d 0a 09 09 24 64 6f  et20....}....$do
1570: 74 4e 65 74 50 72 6f 70 65 72 74 79 33 30 20 3d  tNetProperty30 =
1580: 20 5b 6f 72 64 65 72 65 64 5d 40 7b 0d 0a 09 09   [ordered]@{....
1590: 09 56 65 72 73 69 6f 6e 20 20 20 20 20 3d 20 27  .Version     = '
15a0: 33 2e 30 27 0d 0a 09 09 09 46 75 6c 6c 56 65 72  3.0'.....FullVer
15b0: 73 69 6f 6e 20 3d 20 24 44 6f 74 4e 65 74 33 30  sion = $DotNet30
15c0: 0d 0a 09 09 7d 0d 0a 09 09 24 64 6f 74 4e 65 74  ....}....$dotNet
15d0: 50 72 6f 70 65 72 74 79 33 35 20 3d 20 5b 6f 72  Property35 = [or
15e0: 64 65 72 65 64 5d 40 7b 0d 0a 09 09 09 56 65 72  dered]@{.....Ver
15f0: 73 69 6f 6e 20 20 20 20 20 3d 20 27 33 2e 35 27  sion     = '3.5'
1600: 0d 0a 09 09 09 46 75 6c 6c 56 65 72 73 69 6f 6e  .....FullVersion
1610: 20 3d 20 24 44 6f 74 4e 65 74 33 35 0d 0a 09 09   = $DotNet35....
1620: 7d 0d 0a 09 09 24 64 6f 74 4e 65 74 50 72 6f 70  }....$dotNetProp
1630: 65 72 74 79 34 30 20 3d 20 5b 6f 72 64 65 72 65  erty40 = [ordere
1640: 64 5d 40 7b 0d 0a 09 09 09 56 65 72 73 69 6f 6e  d]@{.....Version
1650: 20 20 20 20 20 3d 20 27 34 2e 30 27 0d 0a 09 09       = '4.0'....
1660: 09 46 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24  .FullVersion = $
1670: 44 6f 74 4e 65 74 34 30 0d 0a 09 09 7d 0d 0a 09  DotNet40....}...
1680: 09 24 64 6f 74 4e 65 74 50 72 6f 70 65 72 74 79  .$dotNetProperty
1690: 34 35 20 3d 20 5b 6f 72 64 65 72 65 64 5d 40 7b  45 = [ordered]@{
16a0: 0d 0a 09 09 09 56 65 72 73 69 6f 6e 20 20 20 20  .....Version    
16b0: 20 3d 20 27 34 2e 35 2b 27 0d 0a 09 09 09 46 75   = '4.5+'.....Fu
16c0: 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 44 6f 74  llVersion = $Dot
16d0: 4e 65 74 34 35 0d 0a 09 09 7d 0d 0a 0d 0a 09 09  Net45....}......
16e0: 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 32 30 20  $dotNetObject20 
16f0: 3d 20 28 4e 65 77 2d 4f 62 6a 65 63 74 20 2d 54  = (New-Object -T
1700: 79 70 65 4e 61 6d 65 20 70 73 6f 62 6a 65 63 74  ypeName psobject
1710: 20 2d 50 72 6f 70 65 72 74 79 20 24 64 6f 74 4e   -Property $dotN
1720: 65 74 50 72 6f 70 65 72 74 79 32 30 29 0d 0a 09  etProperty20)...
1730: 09 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 33 30  .$dotNetObject30
1740: 20 3d 20 28 4e 65 77 2d 4f 62 6a 65 63 74 20 2d   = (New-Object -
1750: 54 79 70 65 4e 61 6d 65 20 70 73 6f 62 6a 65 63  TypeName psobjec
1760: 74 20 2d 50 72 6f 70 65 72 74 79 20 24 64 6f 74  t -Property $dot
1770: 4e 65 74 50 72 6f 70 65 72 74 79 33 30 29 0d 0a  NetProperty30)..
1780: 09 09 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 33  ..$dotNetObject3
1790: 35 20 3d 20 28 4e 65 77 2d 4f 62 6a 65 63 74 20  5 = (New-Object 
17a0: 2d 54 79 70 65 4e 61 6d 65 20 70 73 6f 62 6a 65  -TypeName psobje
17b0: 63 74 20 2d 50 72 6f 70 65 72 74 79 20 24 64 6f  ct -Property $do
17c0: 74 4e 65 74 50 72 6f 70 65 72 74 79 33 35 29 0d  tNetProperty35).
17d0: 0a 09 09 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74  ...$dotNetObject
17e0: 34 30 20 3d 20 28 4e 65 77 2d 4f 62 6a 65 63 74  40 = (New-Object
17f0: 20 2d 54 79 70 65 4e 61 6d 65 20 70 73 6f 62 6a   -TypeName psobj
1800: 65 63 74 20 2d 50 72 6f 70 65 72 74 79 20 24 64  ect -Property $d
1810: 6f 74 4e 65 74 50 72 6f 70 65 72 74 79 34 30 29  otNetProperty40)
1820: 0d 0a 09 09 24 64 6f 74 4e 65 74 4f 62 6a 65 63  ....$dotNetObjec
1830: 74 34 35 20 3d 20 28 4e 65 77 2d 4f 62 6a 65 63  t45 = (New-Objec
1840: 74 20 2d 54 79 70 65 4e 61 6d 65 20 70 73 6f 62  t -TypeName psob
1850: 6a 65 63 74 20 2d 50 72 6f 70 65 72 74 79 20 24  ject -Property $
1860: 64 6f 74 4e 65 74 50 72 6f 70 65 72 74 79 34 35  dotNetProperty45
1870: 29 0d 0a 0d 0a 09 09 24 64 6f 74 4e 65 74 56 65  )......$dotNetVe
1880: 72 73 69 6f 6e 4f 62 6a 65 63 74 73 20 3d 20 24  rsionObjects = $
1890: 64 6f 74 4e 65 74 4f 62 6a 65 63 74 32 30 2c 20  dotNetObject20, 
18a0: 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 33 30 2c  $dotNetObject30,
18b0: 20 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 33 35   $dotNetObject35
18c0: 2c 20 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74 34  , $dotNetObject4
18d0: 30 2c 20 24 64 6f 74 4e 65 74 4f 62 6a 65 63 74  0, $dotNetObject
18e0: 34 35 0d 0a 09 7d 0d 0a 0d 0a 09 45 4e 44 20 7b  45...}.....END {
18f0: 0d 0a 09 09 57 72 69 74 65 2d 4f 75 74 70 75 74  ....Write-Output
1900: 20 2d 49 6e 70 75 74 4f 62 6a 65 63 74 20 24 64   -InputObject $d
1910: 6f 74 4e 65 74 56 65 72 73 69 6f 6e 4f 62 6a 65  otNetVersionObje
1920: 63 74 73 0d 0a 09 7d 0d 0a 7d 0d 0a              cts...}..}..