代码改变世界

如何用PowerShell列出你机器上的.NET Framework的版本号和SP服务补丁

  微软一站式示例代码库  阅读(1212)  评论(0编辑  收藏  举报

代码下载:本文提到的脚本,可以从微软的代码库下载, How to determine versions & service pack levels of .NET Framework by Powershell

 

案例场景

作为开发人员或者IT管理员的你,一个非常常见的场景是你需要知道你的或者客户的机器上安装了哪些微软.NET Framework的版本,有没有比较好的快速的方法可以获取所有的.NET Framework版本信息? 

解决方案

方案是相当的多啊,比方说下面常见的:

  • 使用Windows Explorer获取
  • 通过查看注册表获取
  • 通过在Command Prompt运行命令行程序获取

 

然“花有千百种,我只恋一只”,今天我们这里介绍一个及其有用的另外一种方式,使用PowerShell脚本获取.NET Framework的版本号和SP服务补丁信息。 

这个脚本的核心原理也是通过读取注册表,但毕竟不是每个人每天都要和注册表打交道,像小编我这样的,面对着注册表一堆信息,那是两眼一抹黑啊!!!所以有了这样的一个直接可以运行的脚本,那就省事多啦~~ 

运行要求

咱是有要求的,机器上安装了PowerShell 2.0那是必须滴! 

 

如何使用?

 

  1. 去微软的官方代码库下载这段脚本(很小,1.73K- https://gallery.technet.microsoft.com/How-to-determine-versions-d3669799. 解压到桌面DetermineNetframeworkVersion.ps1
  2. 用管理员的身份打开PowerShell,然后运行下面这段命令:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  3. 有提示后,输入A
  4. 右击刚刚下载的脚本DetermineNetframeworkVersion.ps1 在安全项中点击 unblock并确认.

5. 最后运行脚本.\DetermineNetframeworkVersion.ps1,并得到结果:

 

代码学习

对于有上劲心的小猿们,不学习学习怎么实现的怎么放心呢:

复制代码
Function Get-NETFrameworkVersion 
{ 
    $RegistryPrefix = "Registry::"; 
 
#4-Client 
    Try { 
        IF (((Get-ItemProperty -ErrorAction Stop -Path ($RegistryPrefix + "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client") | SELECT -ExpandProperty "Install"-eq 1) -and 
                ((Get-ItemProperty -ErrorAction Stop -Path ($RegistryPrefix + "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client") | SELECT -ExpandProperty "Version"-eq "4.0.30319.0")) { 
            Write-Host ".NET Framework 4 - Client"; 
        } 
    } Catch {} 
 
#4-Full 
    Try { 
        IF (((Get-ItemProperty -ErrorAction Stop -Path ($RegistryPrefix + "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full") | SELECT -ExpandProperty "Install"-eq 1) -and 
                ((Get-ItemProperty -ErrorAction Stop -Path ($RegistryPrefix + "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full") | SELECT -ExpandProperty "Version"-eq "4.0.30319.0")) { 
            Write-Host ".NET Framework 4 - Full"; 
        } 
    } Catch {} 
# ..... 
} 
 
Get-NETFrameworkVersion 
复制代码

 

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
官方站点:
点击右上角即可分享
微信分享提示