WIX: как отличить членов группы администраторов от встроенных администраторов - PullRequest
1 голос
/ 13 апреля 2011

Моя установка должна вести себя по-разному для администратора и обычного пользователя (другой каталог установки и т. Д.). В то же время он должен работать для XP, Vista и Windows 7.

Установщик работает, как и следовало ожидать для XP и Vista, но не может обнаружить администратора в Windows 7.

Я установил MSIUSEREALADMINDETECTION на 1, чтобы быть уверенным, что Привилегированный установлен только для пользователей с правами администратора.

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

Как пользователь с правами администратора, следующее условие не нарушается в Vista, но не выполняется в Vista

<Condition Message="Not Privileged">Privileged</Condition>

Вот тестовый проект (я знаю, что он не завершен:)

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="0b241708-eb30-4bd9-9906-983f228ee2a6" Name="wixTest01" Language="1033" Version="1.0.0.0" Manufacturer="wixTest01" UpgradeCode="1093efb2-75d0-499a-8050-99adfc8ae7c2">
    <Package InstallerVersion="200" Compressed="yes" />

    <UI>
      <UIRef Id="WixUI_InstallDir" />
    </UI>

    <Property Id="MSIUSEREALADMINDETECTION" Value="1" />
    <Condition Message="Privileged">Privileged</Condition>

  </Product>
</Wix>

UPDATE:

Я только что нашел это:

http://windows -installer-xml-wix-toolset.687559.n2.nabble.com / Admin-заезд-Win-2008-td4557002.html

Я использовал встроенную учетную запись администратора в Vista и созданный администратор (члены группы администраторов) в Windows 7. Я думал, что эти учетные записи совпадают, но это не так.

Встроенный администратор имеет свойство Privileged, равное 1, а члены группы администраторов - нет.

Кажется, что нет способа обнаружить членов группы администраторов?

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Как описано в теме, на которую вы ссылаетесь, это стандартное поведение, когда UAC включен. По запросу UAC члены группы «Администраторы» получают повышенные разрешения только по требованию; в других случаях они в значительной степени обычные пользователи (более или менее).

2 голосов
/ 14 апреля 2011

Не беспокойтесь о настройке MSIUSEREALADMINDETECTION, это для свойства AdminUser.

Я использую следующий код:

<Condition Message="Privileged">
    <![CDATA[Installed OR Privileged]]>
</Condition>

Однако, поскольку Vista и Windows 7 имеют функцию аутентификации «через плечо» (см. Использование установщика Windows с UAC Документация MSDN), пользователь не имеет повышенных привилегий во время InstallUISequence, вы собираетесь столкнуться с проблемами.

Например, обычный пользователь запускает установщик, и только после того, как он нажимает кнопку «Установить» (со щитом UAC), ему предлагается ввести учетные данные администратора, поэтому вы не знаете , если администратор предоставить их или нет ранее в процессе установки.

...