当调查应用程序问题时,通常需要先确认目标机器所安装的 .NET Framework 的版本。可以通过如下方式来确认版本号:

通过控制面板安装程序查询

通过查询注册表获取版本信息

在注册表 regedit 中查找键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

得到如下结果:

对应结果如下:

 Value of the Release 

Version

378389

.NET Framework 4.5

378675

.NET Framework 4.5.1 installed with

Windows 8.1

378758

.NET Framework 4.5.1 installed on

Windows 8, Windows 7 SP1

379893

.NET Framework 4.5.2

On Windows 10 systems: 393295

On all other OS versions: 393297

  .NET Framework 4.6
 On Windows 10 November Update: 394254

On all other OS versions: 394271

  .NET Framework 4.6.1

通过查看安装目录获取版本信息

通常 .NET Framework 会被安装在:

%WINDIR%\Microsoft.Net\Framework

而对应的结果通常是:

C:\Windows\Microsoft.NET\Framework

使用命令:

dir %WINDIR%\Microsoft.Net\Framework\v* /B

得到目录结果:

但这仅列出了目录,无法判断是否安装了 .NET 4.5 或 .NET 4.5.1 等,还需要直接查看 DLL 版本详细信息。

比如,上图中查看了 mscorlib.dll 的版本号是 4.0.30319.34209,这代表什么呢?

  • 4.0.30319.1 = .NET 4.0 RTM
  • 4.0.30319.269 = most common .NET 4.0 version
  • 4.0.30319.544 = another .NET 4.0 version that a small portion
  • 4.0.30319.17626 = .NET 4.5 RC
  • 4.0.30319.17929 = .NET 4.5 RTM
  • 4.0.30319.18010 = current version on my Windows 8 machine
  • 4.0.30319.18052 = .NET 4.5 on Windows 7 SP1 64-bit
  • 4.0.30319.18408 = .NET 4.5.1 on Windows 7 SP1 64-bit
  • 4.0.30319.34209 = .NET 4.5.2 on Windows 7 PS1 64-bit
  • 4.0.30319.34014 = .NET 4.5.1 on Windows 8.1 64-bit
  • 4.0.30319.34209 = .NET 4.5.2 on Windows 8.1 64-bit

通过使用 WMI 命令获取版本信息

可以通过执行 wmic 命令来获取版本号,命令如下:

wmic product where "Name like 'Microsoft .Net%'" get Name, Version

执行结果:

还可以通过 wmic 命令查询目标机器上安装的所有与 .NET 相关的微软应用,命令如下:

wmic /namespace:\\root\cimv2 path win32_product where "Name like '%%.NET%%'" get Name, Version

执行结果:

参考资料

本文《获取机器安装.NET版本的几种方式》由 Dennis Gao 发表自博客园,未经作者本人同意禁止任何形式的转载,任何自动或人为的爬虫转载行为均为耍流氓。

获取机器安装.NET版本的几种方式的更多相关文章

  1. Struts2中获取HttpServletRequest,HttpSession等的几种方式

    转自:http://www.kaifajie.cn/struts/8944.html package com.log; import java.io.IOException; import java. ...

  2. Action 中获取表单数据的三种方式

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905  冷血之心的博客) Action 中获取表单提交数据 ...

  3. Linux查看操作系统版本的几种方式

    Linux查看操作系统版本的几种方式: 1.uname -a 2.lsb_release -a 3.cat /etc/issue 4.cat /proc/version 5.cat /etc/redh ...

  4. ASP.NET Web API中实现版本的几种方式

    在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...

  5. js中获取页面元素节点的几种方式

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式

    前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...

  7. Spring Boot获取前端页面参数的几种方式总结

    Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库. 获得的方式有很多种,这里稍微总结一下,大致分为以下几种: 1.指定前端url请求 ...

  8. Day20-单表中获取表单数据的3种方式

    1. 搭建环境请参考:http://www.cnblogs.com/momo8238/p/7508677.html 2. 创建表结构 models.py from django.db import m ...

  9. 获取Spring的ApplicationContext的几种方式

    Application Context定义 简单来说就是Spring中的高级容器,可以获取容器中的各种bean组件,注册监听事件,加载资源文件等功能. 具体定义可以参考官网:https://sprin ...

随机推荐

  1. delphi真随机数发生器

    当然不是绝对真随机,是相对真随机数 下载

  2. Qt 程序访问 sqlite 权限错误

    在Linux桌面上开发应用,想要拥有root权限,可是又需要弹窗申请.所以尽量避免这种情况发生. 另外:gksu,pkexec可以提供gui的root权限索取功能. 因为db文件是安装的时候放到etc ...

  3. angular js 自定义js错误处理(Angularjs js error handler)

    使用AngularJS的时候,对JS错误如何自定义处理?(比如用Google Analytics记录angularjs使用中出现的js错误) AngularJS自带一个错误处理service:$exc ...

  4. oracle flashback功能

    2). 检查Flashback 功能, 缺省时功能是关闭的. SQL> select name, current_scn, flashback_on from v$database; NAME  ...

  5. webview loadUrl() 弹出系统浏览器解决办法

    有很多时候,我们请求的网站会直接跳转到一个位置,这样会直接全屏浏览器加载被跳转的网页,或者弹出浏览器选择(除了系统的,你还自己安装了其他浏览器). 于是解决办法的原理就是,在webview中跳转. 办 ...

  6. ASP.NET操作ORACLE数据库之模糊查询

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  7. [C#基础]ref和out的使用

    在C#中如果需要把值类型转换成引用类型传递其他方法中并使其原来值发生改变,使用 ref 和 out 转换成引用类型传递. 1. ref : 使用ref之前需要定义变量并初始化(必须初始) class ...

  8. 设计模式可复用面向对象软件设计基础之对象创建型模式—ABSTRACT FACTORY( 抽象工厂)

    意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 适用性 在以下情况可以使用 Abstract Factory模式 • 一个系统要独立于它的产品的创建.组合和表示时. • 一 ...

  9. 【洛谷P3197】越狱

    本来还想了一会dp-- 然而一看数据范围明显是数论-- 那么推一推.. 我们发现可以用总方案数减去不会越狱的方案数 那么我们考虑在长度为n的数列中填数 首先第一个位置有m种选择,后面的位置: 总方案: ...

  10. shell中括号的使用

    在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string ...