Как предотвратить удаление и создание пользователя Windows во время исправления
У меня есть проект, который использует расширение 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 ответ
Вы можете сделать это в WiX:
<InstallExecuteSequence>
<Custom Action='ConfigureUsers'
After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>
Вот еще несколько условий
- Действие выполняется только при условии установки: НЕ установлено и НЕ исправлено
- Действие выполняется только при удалении MSI. Условие: УДАЛИТЬ
- Действие выполняется во время установки и ремонта. Условие: НЕ УДАЛЯТЬ.
- Действие выполняется во время установки и удаления. Условие: не должно быть условия.
- Действие вызывает EXE, установленный MSI. Условие: НЕ установлено и не исправлено.
- Запускать только при начальной установке: НЕ установлено
- Запускать при первоначальной установке или при выборе ремонта. НЕ установлен ИЛИ MaintenanceMode="Изменить"
- Запускать при удалении из командной строки или меню добавления / удаления. УДАЛИТЬ ~="Все" ИЛИ MaintenanceMode="Удалить"