google code prettify

2016年11月18日 星期五

[.NET]使用PowerShell 查詢主機目前安裝的 .NET 版本

此篇文章完全來自黑暗大大的快速查詢主機目前安裝的 .NET 版本
此篇純屬註記,方便日後查詢使用
Google search keyword  => PowerShell script to return versions of .NET Framework on a machine?
PC OS: window 7

使用指令PowerShell如下
我承認我是大懶豬(舉手答右),以下內容轉自黑暗大大

在 Stackoverflow 找到網友分享用 Powershell 檢查 .NET 版本的範例:
註:Stackoverflow 上原本的寫法是 Where { $_.PSChildName -match '^(?!S)\p{L}'} ,
用到的 Regular Expression 語法有點生澀難懂:^(?!S) 指明第一個字母不可是 S 以排除 Setup;\p{L} 
則規定必須字母起首(參考:Unicode Category)排除 1033、1028 等語系代碼項目,我改用 ^[^0-9S] ,
結果相同,但好記好懂許多
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^[^0-9S]'} |
Select PSChildName, Version, Release, @{
  name="Product"
  expression={
      switch -regex ($_.Release) {
        "378389" { [Version]"4.5" }
        "378675|378758" { [Version]"4.5.1" }
        "379893" { [Version]"4.5.2" }
        "393295|393297" { [Version]"4.6" }
        "394254|394271" { [Version]"4.6.1" }
        "394802|394806" { [Version]"4.6.2" }
        {$_ -gt 394806} { [Version]"Undocumented 4.6.2 or higher, please update script" }
      }
    }
}
測試成功,再次感謝謝黑暗大神 Orz

沒有留言:

張貼留言