Как правильно проверить, запущен ли процесс с правами администратора?
Я проверил функцию IsUserAnAdim
в MSDN , но это не рекомендуется, поскольку она может быть изменена или недоступна в последующих версиях Windows. Вместо этого рекомендуется использовать функцию CheckTokenMembership
.
Затем я посмотрел на альтернативный пример в MSDN из описания функции CheckTokenMembership
. Однако в MSDN есть комментарий Стефана Озминского, в котором говорится, что этот пример не работает должным образом в Windows Vista, если UAC отключен.
Наконец, я попытался использовать код Стефана Озмински из MSDN, но он определяет, что у процесса есть права администратора, даже если я запускаю его под обычным пользователем без прав администратора в Windows 7.