Сам не пробовал, но может быть dotTrace ? Их приложение ReSharper, безусловно, хорошее. Может быть, dotTrace тоже :))
import ctypes, os
try:
is_admin = os.getuid() == 0
except AttributeError:
is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
print is_admin
Попробуйте сделать то, для чего вам нужны права администратора, и проверьте, нет ли сбоя.
Это сработает только для некоторых вещей, но что вы пытаетесь сделать?
Лучше, если вы проверите, на какой платформе работает ваш скрипт (используя sys.platform
), и выполните тест на основе этого, например, импортируйте некоторую функцию hasAdminRights с другой платформы. -specific module.
В Windows вы можете проверить, доступна ли запись в Windows \ System32
, используя os.access
, но не забудьте попытаться получить фактический путь к папке "Windows" системы, возможно используя pywin32. Не кодируйте жестко.
Членство в группе администраторов (домен / локальное / предприятие) - это одно.
настройка вашего приложения таким образом, чтобы не использовать общие привилегии, и настройка детализированных прав - лучший вариант, особенно если приложение
тестирование для определенных именованных привилегий (se_shutdown se_restore и т. д.), права доступа к файлам более удобны и их легче диагностировать.