如何以编程方式确定已安装的 IIS 版本
以编程方式确定当前安装的 Microsoft Internet 信息服务 (IIS) 版本的首选方法是什么?
我知道可以通过查看 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 中的 MajorVersion 键找到它。
这是否是推荐的实现方式,或者是否有任何更安全或更美观的方法可供 .NET 开发人员使用?
What would the preferred way of programmatically determining which the currently installed version of Microsoft Internet Information Services (IIS) is?
I know that it can be found by looking at the MajorVersion key in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters.
Would this be the recommended way of doing it, or is there any safer or more beautiful method available to a .NET developer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
要从 IIS 进程外部识别版本,一种可能性如下...
要在运行时从工作进程内部识别它...
To identify the version from outside the IIS process, one possibility is like below...
To identify it from within the worker process at runtime...
您可以构建一个 WebRequest 并将其发送到环回 IP 地址上的端口 80,并获取服务器 HTTP 标头。
不确定这是否是更好的方法,但这肯定是另一种选择。
You could build a WebRequest and send it to port 80 on a loopback IP address and get the Server HTTP header.
Not sure if that's a better way of doing it but it's certainly another option.
我是这样做的(使用Powershell):
I did it this way (using Powershell):
无需编写代码。 您可以在注册表编辑器中找到它
,转到运行-> 类型 - regedit ->
注册表的 LOCAL MACHINE 分支包含 Windows 7 的版本信息。
起始分支位于 (HKLM) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \InetStp\ VersionString
注意:空格用于读取目的。
No need to write code. You can find it in Registry editor
goto to run -> type - regedit ->
The LOCAL MACHINE Branch of registry contains the Version information for Windows 7.
The Starting Branch is in (HKLM) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \InetStp\ VersionString
Note: The Spaces are for reading purposes.
以下命令帮助我在 IIS 8.5 (Windows 2012 R2) 和 7.5 Windows 7 SP1 上正确找到 IIS 版本。
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("$env:SystemRoot\system32\inetsrv\InetMgr.exe").ProductVersion
参考:
https://forums.iis.net/p/1171695/1984536.aspx : f00_beard 的回答
The below command helped me find the IIS version correctly on IIS 8.5 (Windows 2012 R2) and 7.5 Windows 7 SP1.
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("$env:SystemRoot\system32\inetsrv\InetMgr.exe").ProductVersion
Reference:
https://forums.iis.net/p/1171695/1984536.aspx : Answer from f00_beard