Server 2008 не может установить права пользователя
-
27-09-2019 - |
Вопрос
Я попытался сделать несколько вещей Win32 в C # 3.5, чтобы получить повышенные права пользователя для приложения для консоли. Я разрабатываю на Visual Studio 2008 SP1 / GDR, и все вещи работают нормально, когда беги под отладчик. Вещи также отлично работают, когда я бегу в консоли приложение автономным. Вещи также работают нормально, когда я упаковываю все в MSI и установите его на сервере 2003 года и запустите приложение консоли.
Если я беру один и тот же MSI и установите его на сервере 2008 года с включенным UAC, затем запустите приложение консоли, я получаю такие сообщения:
Unable to set right for the account "DOMAIN\QAUSER": SeCreateGlobalPrivilege
System.UnauthorizedAccessException Attempted to perform an unauthorized operation.
Я не могу ожидать, что мои администраторы развертывания / сервера делают что-нибудь с моим приложением, кроме установки его, и они не собираются отключить UAC. Должен быть какой-то программный способ правильно установить права пользователя, которые я могу добавить в приложение консоли - кто-нибудь знают, как?
Спасибо.
Решение
Вероятно, вы используете »Глобальный "префикс На имя объекта в вашем приложении, и ваше приложение будет запущено внутри сеанса сеанса дистанционного рабочего стола (Host Session Host). В случае, если ваша программа должна включить Se_create_global_name. (SeCreateGlobalPrivilege
) привилегия. Видеть C # - Как включить седабугпривилеж? (Но использовать SE_CREATE_GLOBAL_NAME
вместо SE_DEBUG_NAME
) или Манипулировать привилегиями в управляемом коде надежно, надежно и эффективно Например.
Другие советы
Я предполагаю, что UAC включен на машине 2008 года, и я не могу прокомментировать еще на ваш вопрос, чтобы узнать.
Если это так, убедитесь, что в вашем приложении. Mpanifest файл в VS (в соответствии с свойствами), изменить
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
к
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Даже если код работает как администратор, вы должны пройти от предупреждения UAC.