在名称中创建一个带下划线的新用户

时间:2015-05-27 09:58:43

标签: xml wix windows-installer

我正在尝试使用以下XML在WiX中创建用户:

  <Component Id="cmp_MyNewFolder" Guid="*">
    <util:User Id="MyNewUser"
      CreateUser="yes"
      Name="DUMMY&#95;USER"
      Domain="[ComputerName]"
      Password=""
      PasswordNeverExpires="yes"
      RemoveOnUninstall="yes"
      UpdateIfExists="yes" />
    <CreateFolder>
      <util:PermissionEx GenericAll="yes" User="DUMMY&#95;USER"/>
    </CreateFolder>
  </Component>

我已删除此帖子的GUID和密码,因此问题不在于这些。问题是每当我运行.MSI时,我都会收到一般错误(无法创建用户),安装失败。在使用了XML之后,我发现给用户一个包含下划线的名称会导致错误。我尝试使用字符文字和XML实体作为下划线,但无论如何都是相同的结果。

让我感到困惑的是(根据我所读到的),下划线不被视为特殊字符,并且我能够手动创建此用户(使用下划线)而没有任何问题。是否可以使用WiX创建名称中带下划线的用户?或者我是否需要适应不同的角色?

2 个答案:

答案 0 :(得分:0)

允许在用户名中使用下划线。此代码有效,安装包正确创建用户。

<Component Id="Component_User" Guid="{1B55F3FB-6B0F-4EF9-89ED-DB3ECA9106A4}">
    <util:User Id="MyNewUser"
               CreateUser="yes"
               Name="test_user"
               Password="test"
               PasswordNeverExpires="yes"
               RemoveOnUninstall="yes"
               UpdateIfExists="yes" />
    <CreateFolder>
        <util:PermissionEx GenericAll="yes" User="test_user"/>
    </CreateFolder>
</Component>

详细日志可能包含有关错误的更多信息。

答案 1 :(得分:0)

错误0x80070563(-2147023517)为ERROR_ALIAS_EXISTS(指定的本地组已存在。)当您尝试创建用户但是已存在的用户组(或其他AD对象?)时,会出现此错误。名。

我认为您的安装程序没有任何问题。名字中的下划线并不特别。问题似乎是运行安装程序的计算机上已存在的用户组(或其他AD对象)。安装程序正在尝试创建用户,但由于冲突而无法创建。