我正在尝试创建一个新的本地组,然后在通过WiX安装期间将当前登录的Active Directory用户添加到该组。
我有两部分工作,但不是同时...所以我可以使用Wix UserPrivileges Extension创建一个组,如下所示:
<Component Id="LocalSQLAdminGroupComponent" Guid="MYGUID" KeyPath="yes">
<userPrivileges:LocalGroup Id="LocalSQLAdminsGroupCreate" Name="LocalSQLAdmins"
Description="Members of this group are designated as sql admins for the ISFS SQL Express instance."
CheckIfExists="yes"
CreateOnInstall="yes"
/>
但是当我添加这个以将用户添加到AD中的组时(为什么我不能使用userPriviledges:User元素,因为它只适用于本地用户),安装程序错误,因为该组尚未在GroupRef之前创建尝试将用户分配给组。
<util:Group Id="LocalSQLAdminsGroup" Name="LocalSQLAdmins"/>
...
<util:User Id="ADUser" Domain="[%USERDOMAIN]" Name="[%USERNAME]">
<util:GroupRef Id="LocalSQLAdminsGroup"/>
</util:User>
有没有办法确保在GroupRef尝试将其添加到群组之前创建群组?
答案 0 :(得分:1)
我不确定这会有效,但你可以尝试一下。
<userPrivileges:LocalGroup>
元素会导致在InstallExecuteSequence
中的某个位置延迟调度自定义操作。据我所知,它被称为CreateLocalGroups_Deferred
。以类似的方式,<util:User>
元素会生成名为CreateUser
的自定义操作。
您应该尝试在CreateUser
表格CreateLocalGroups_Deferred
自定义操作后安排InstallExecuteSequence
自定义操作。您可以使用<Custom>
元素的Before
,After
和Sequence
属性执行此操作。
我上面的确切名称可能有问题,但我希望你明白这一点。