使用Installshield启用Windows功能/角色

4
我们的应用程序支持操作系统“Windows Server 2012 R2”。我们有一个应用程序,需要启用“应用初始化”功能。我们使用Installshield 2014制作了应用程序安装程序。 我已经找到了检查任何Windows功能状态的实现方法。 我尝试过以下代码,它给出了已安装功能列表:
ManagementClass objMC = new ManagementClass("Win32_ServerFeature");
ManagementObjectCollection objMOC = objMC.GetInstances();
string featureName = string.Empty;
var AppInitFeature = (from ManagementObject objectFeature in objMOC
                      where objectFeature.Properties["Name"].Value.ToString() == "Application Initialization"
                      select objectFeature).First();

这里我的问题是:在Installshield中是否有任何内置功能来启用Windows功能?还是我们需要编写自定义操作。 如果我们需要编写自定义操作,那么如何通过c#代码启用Windows功能。
请问有人能帮忙解决吗?
提前感谢。
1个回答

3
据我所知,仅适用于InstallShield AdvancedUI和Suite项目的安装Windows角色和功能。
相反,您可以通过识别注册表中的功能安装状态并使用批处理脚本手动启用所需功能来创建自己的设置先决条件。
例如,我们为我们的MSMQ先决条件执行了相同的操作: 相应的注册表是HKLM \ SOFTWARE \ Microsoft \ MSMQ \ Setup,要检查的条目是msmq_CoreInstalled == 1
批处理文件包含调用
%SystemRoot%\sysnative\dism /online /Enable-Feature /FeatureName:MSMQ-Server /all

还有一些很酷的东西。

目前这个解决方案已经在所有测试过的Windows系统上运行良好(据我所知,这些系统包括Windows 7 / 8 / 8.1和Server 2008R2 / 2012)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接