Включить функцию Windows \ Роль через Installshield

Наше приложение поддерживается для ОС "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? ИЛИ нам нужно написать любое специальное действие для этого. Если нам нужно написать пользовательское действие, то как включить функцию Windows через код на C#.

Может ли кто-нибудь помочь мне в этом.

Спасибо в ожидании.

1 ответ

Насколько я знаю, установка ролей и функций Windows доступна только для проектов InstallShield AdvancedUI и Suite.

Вместо этого вы можете создать собственное предварительное условие установки, указав состояние установки компонента в реестре и вручную включив необходимую функцию с помощью пакетного сценария.

Например, мы сделали то же самое для нашей предпосылки 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.

Другие вопросы по тегам