即使我已使用服务器管理器删除了Windows Server 2012 R2上的Web服务器(IIS)角色和功能,但我的Wix安装程序先决条件检查表明已安装IIS。
我使用以下注册表项进行先决条件检查
<Property Id="P_IISVERSIONMAJOR">
<RegistrySearch Id="SearchIISMajor" Type="raw"
Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MajorVersion" Win64="yes" />
</Property>
<Property Id="P_IISVERSIONMINOR">
<RegistrySearch Id="SearchIISMinor" Type="raw"
Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MinorVersion" Win64="yes" />
</Property>
是否有任何密钥或某些东西表明需要使用服务器管理器将IIS添加为角色(已启用/已注册)?
任何帮助都会受到高度赞赏,因为我正在处理发布错误。
由于
编辑:
我的要求是检测是否安装了IIS。但是在Windows Server 2012 R2上默认情况下IIS可用,并且始终存在以下密钥。 HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ InetStp 当目标计算机上发现缺少所有或部分先决条件时,安装程序将显示先决条件对话框。 因此,当用户从服务器管理器中删除Web服务器(IIS)角色/功能时,我需要显示在先决条件对话框中未安装IIS。对于相同的我需要某种方式来指示未安装IIS。
可能我的第一个问题不明确,所以现在试图详细说明我的要求并希望它不要混淆。请随时澄清。
感谢您的帮助!
答案 0 :(得分:0)
根据Discover Installed Components,您应该检查HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp\Components\
并查找:
Display Name Registry Key
====================================
Web Server W3SVC
从页面:
...我们正在发布一个显示是否存在的注册表项列表 给定IIS模块已安装。使用这些注册表项 以编程方式检查IIS组件。如果有一个组件 安装后,注册表项的DWORD值为00000001.如果是 组件从未安装或已卸载, 注册表项不存在。
IIS.net页面上可能列出了20或30个组件。