如何在WiX中创建本地组并向其添加活动目录用户

时间:2012-07-12 19:54:02

标签: active-directory wix

我正在尝试创建一个新的本地组,然后在通过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尝试将其添加到群组之前创建群组?

1 个答案:

答案 0 :(得分:1)

我不确定这会有效,但你可以尝试一下。

<userPrivileges:LocalGroup>元素会导致在InstallExecuteSequence中的某个位置延迟调度自定义操作。据我所知,它被称为CreateLocalGroups_Deferred。以类似的方式,<util:User>元素会生成名为CreateUser的自定义操作。

您应该尝试在CreateUser表格CreateLocalGroups_Deferred自定义操作后安排InstallExecuteSequence自定义操作。您可以使用<Custom>元素的BeforeAfterSequence属性执行此操作。

我上面的确切名称可能有问题,但我希望你明白这一点。