2015-05-27 3 views
1

Я пытаюсь создать пользователя в WiX, используя следующий XML:Создание нового пользователя с подчеркиванием в имени

<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? Или мне придется довольствоваться другим персонажем?

+0

Добро пожаловать в переполнение стека! Я редактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Какую версию WIX вы используете? Не могли бы вы разместить часть журнала установки, относящуюся к ошибке «Не удалось создать пользователя»? – bradfordrg

+0

Ошибка в журнале установки, похоже, содержит несколько различных кодов ошибок: CreateUser: Ошибка 0x80070563: не удалось создать пользователя: DUMMY_USER Ошибка 26401. Не удалось создать пользователя. (-2147023517 DUMMY_USER) MSI (D0! DC) [14: 38: 14: 158]: Продукт: wix_test - Ошибка 26401. Не удалось создать пользователя. (-2147023517 DUMMY_USER) CustomAction CreateUser вернул действительный код ошибки 1603 (обратите внимание, что это не может быть на 100% точным, если перевод произошел внутри песочницы) Действие завершено 14:38:14: InstallFinalize. Возвращаемое значение 3. Я просмотрел их, но они, похоже, не относятся к общей проблеме. –

ответ

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> 

В подробном журнале может быть больше информации об ошибке.

+0

Подробный журнал об ошибке выглядит так: 'CreateUser: Error 0x80070563: не удалось создать пользователя: IIS_IUSRS Ошибка 26401. Не удалось создать пользователя. (-2147023517 IIS_IUSRS) MSI (D0! DC) [14: 38: 14: 158]: Продукт: wix_test - Ошибка 26401. Не удалось создать пользователя. (-2147023517 IIS_IUSRS) CustomAction CreateUser вернул действительный код ошибки 1603 (обратите внимание, что это не может быть на 100% точным, если перевод произошел внутри песочницы) Действие завершено 14:38:14: InstallFinalize. Возвращаемое значение 3.' Я просмотрел коды ошибок, но я не вижу, как они связаны с тем, что я делаю. –

+0

В WinError.h эта ошибка 0x80070563 описывается как ERROR_ALIAS_EXISTS (указанная локальная группа уже существует.). Это происходит потому, что пользователь с тем же именем уже существует (возможно ли быть деактивировано?). – Marlos

+0

Я заменил имя пользователя тем, что я раньше не использовал, и программа установки работала. Я могу только предположить, что я запустил установщик в какой-то момент, не используя атрибут «RemoveOnUninstall», и пользователь все еще где-то висит. Я хотел бы полностью удалить их из системы, но я не могу их найти нигде. Это еще одна проблема. Большое спасибо! –

0

Ошибка 0x80070563 (-2147023517) is ERROR_ALIAS_EXISTS (Указанная локальная группа уже существует.) Это происходит, когда вы пытаетесь создать пользователя, но группа пользователей (или другой объект AD?) Уже существует с тем же именем.

Я не думаю, что с вашим установщиком что-то не так. Подчеркивания имен не являются чем-то особенным. Проблема заключается в том, что группа пользователей (или другой объект AD) уже существует на компьютере, на котором запущена программа установки. Установщик пытается создать пользователя, но не может из-за столкновения.