Как предотвратить удаление и создание пользователя Windows во время исправления - PullRequest
4 голосов
/ 19 июня 2010

У меня есть проект, который использует расширение WiX WixUtilExtension для создания пользователя для наших служб Windows.Когда я исправляю установку (используя MSP), выполняются настраиваемые действия RemoveUser и CreateUser.

Я не хочу, чтобы эти созданные пользователем расширения WiX запускались во время исправления.

Я могу добавить условие непосредственно к настраиваемому действию (ConfigureUsers) в таблице InstallExecuteSequence MSI , чтобы предотвратить это, но я не нашел способа справиться с этим в WiX.

ИспользованиеWiX, как я могу предотвратить выполнение RemoveUser и CreateUser во время патча?

<util:Group Id="LocalAdministrators" Name="Administrators"/>
<DirectoryRef Id="INSTALLLOCATION" DiskId="1">
    <Component Id="CreateServiceAccountUser" Guid="{614550A7-C766-4B5D-9BF9-233D07EB3B69}">

        <util:User Id="ServiceAccountUser"
                   CanNotChangePassword="yes"
                   CreateUser="yes"
                   Disabled="no"
                   FailIfExists="no"
                   LogonAsService="yes"
                   Name="TestUser"
                   Password="testuserpw"
                   PasswordExpired="no"
                   PasswordNeverExpires="yes"
                   RemoveOnUninstall="yes"
                   UpdateIfExists="yes">
            <util:GroupRef Id="LocalAdministrators"/>
        </util:User>

        <RegistryKey Root="HKMU" Key="Software\AMT\WebBrix">
            <RegistryValue Name="CreateServiceAccountUser"
                           Value="Common"
                           Type="string"
                           KeyPath="yes" />
        </RegistryKey>

    </Component>
</DirectoryRef>

1 Ответ

3 голосов
/ 19 июня 2010

Вы можете сделать это в WiX:

<InstallExecuteSequence>
    <Custom Action='ConfigureUsers' 
            After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>

Вот еще несколько условий

  1. Действие запускается только во время установки Условие: НЕ установлено и НЕ исправлено
  2. Действие выполняется только при удалении MSI. Условие: УДАЛИТЬ
  3. Действие выполняется при установке и ремонте. Условие: НЕ УДАЛЯТЬ
  4. Действие выполняется при установке и удалении. Условие: условие не должно быть
  5. Действие вызывает EXE, установленный MSI. Условие: НЕ установлено и НЕ ПАТЧ
  6. Запускать только при начальной установке: НЕ установлено
  7. Запускать при начальной установке или при выборе восстановления.НЕ установлен ИЛИ MaintenanceMode = "Изменить"
  8. Запускать при удалении из командной строки или меню добавления / удаления.УДАЛИТЬ ~ = "Все" ИЛИ MaintenanceMode = "Удалить"
...