gpt4 book ai didi

wix - 如何防止 Windows 用户在补丁期间被删除和创建

转载 作者:行者123 更新时间:2023-12-04 21:43:24 26 4
gpt4 key购买 nike

我有一个项目,它使用 WiX 扩展 WixUtilExtension 为我们的 Windows 服务创建用户。当我修补安装(使用 .msp)时,会执行自定义操作 RemoveUser 和 CreateUser。

我不希望这些 WiX 扩展创建的自定义操作在补丁期间运行。

我可以直接在 MSI 的 InstallExecuteSequence 表中的自定义操作(ConfigureUsers)中添加条件以防止这种情况发生,但我还没有找到在 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>

最佳答案

你可以在 WiX 中做到这一点:

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

这里还有一些条件
  • 操作仅在安装期间运行
    条件:未安装且未修补
  • 操作仅在删除 MSI 期间运行
    条件:移除
  • 操作在安装和修复期间运行
    条件:不删除
  • 操作在安装和删除期间运行
    条件:必须没有条件
  • Action 调用 MSI 安装的 EXE
    条件:未安装且未修补
  • 仅在初始安装时运行:
    未安装
  • 在初始安装或选择修复时运行。
    未安装或 MaintenanceMode="Modify"
  • 从命令行卸载或添加/删除菜单时运行。
    REMOVE~="All"OR MaintenanceMode="Remove"
  • 关于wix - 如何防止 Windows 用户在补丁期间被删除和创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072790/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com