如何通过注册表判断用户是否安装IIS及获取其版本号?
通过注册表检测IIS安装状态与版本号的方法
我经常帮开发者处理这类系统服务检测的需求,通过注册表判断IIS是否安装以及获取版本号是非常可靠的方案,下面是具体的注册表项和判断逻辑:
核心注册表路径
判断IIS是否安装,主要看以下两个注册表项(根据系统位数和程序位数区分):
- 对于32位系统,或者64位系统上的64位程序,访问:
HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp - 对于64位系统上的32位程序,需要访问Wow6432Node下的路径:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\InetStp
如果上述注册表项不存在,基本可以判定用户未安装IIS服务。
获取版本号的关键键值
在上面的注册表项中,有几个关键键值可以用来确定IIS版本:
MajorVersion(DWORD类型):主版本号,比如IIS 10的主版本是10MinorVersion(DWORD类型):次版本号,比如IIS 8.5的次版本是5VersionString(字符串类型):直接显示版本字符串,比如"10.0"对应IIS 10
常见IIS版本对应的版本号参考:
- IIS 5.1:MajorVersion=5,MinorVersion=1
- IIS 6.0:MajorVersion=6,MinorVersion=0
- IIS 7.0:MajorVersion=7,MinorVersion=0;IIS 7.5:MajorVersion=7,MinorVersion=5
- IIS 8.0:MajorVersion=8,MinorVersion=0;IIS 8.5:MajorVersion=8,MinorVersion=5
- IIS 10.0:MajorVersion=10,MinorVersion=0
额外验证逻辑
如果需要更严谨的判断,还可以检查注册表项中的InstallPath键值,它会指向IIS的核心安装目录(通常是C:\Windows\System32\inetsrv\),若该路径存在且对应目录有文件,也能辅助确认IIS已正确安装。
内容的提问来源于stack exchange,提问作者Garry.Gu




