Как проверить, входит ли пользователь в группу "Администратор" в проекте Install Shield 2009 Basic MSI
Установите Shield 2009, Premier, Basic MSI Projcet:[Я хочу разрешить запуск установки только администраторам]. На вкладке Releases->MyProductConfiguration->MyRelease->Setup.exe я выбрал "Требуемый уровень выполнения" = "Invoker" и в Общая информация-> Свойства продукта Я ставлю условие установки как Условие = "AdminUser" Сообщение = "Требовать от администратора права для запуска этого..."
Проблема только в том, что главный администратор может установить его. Любой другой пользователь, говорящий "Test" с правами администратора, не может установить и получить сообщение об ошибке "Требуется администратор для запуска этого..."
Так как разрешить только тем пользователям, которые входят в группу администраторов, устанавливать и ограничивать других.
3 ответа
Есть (как минимум) два пути:
- Проверить, если
SYSINFO.WINNT.bAdmin_Logged_On
являетсяTRUE
, Если это так, у пользователя есть права администратора. - Проверить, если
Is(USER_ADMINISTRATOR,"")
возвращаетсяTRUE
, Если это так, у пользователя есть права администратора.
Вы можете использовать любой.
Вышеуказанную проблему вы можете решить с помощью Installscript
Например:
if(SYSINFO.WINNT.bWinNT) тогда if (!SYSINFO.WINNT.bAdmin_Logged_On) тогда
MessageBox(Вы должны войти в систему как администратор, SEVERE); прервать; ENDIF; ENDIF;
Сначала это проверит, для какой ОС, а затем вошел в систему пользователь TRUE, конечный пользователь вошел в систему под NT с правами администратора. или выйдите из приложения.
Надеюсь, это поможет вам...
Это можно сделать в базовом проекте MSI, перейдя в Конструктор установки -> Общая информация -> Поток сводной информации -> Требовать права администратора = Да