Межплатформенный способ проверить права администратора в сценарий Python в соответствии с Windows?

Сам не пробовал, но может быть dotTrace ? Их приложение ReSharper, безусловно, хорошее. Может быть, dotTrace тоже :))

18
задан Christian Heinrichs 23 January 2014 в 17:27
поделиться

4 ответа

import ctypes, os
try:
 is_admin = os.getuid() == 0
except AttributeError:
 is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0

print is_admin
41
ответ дан 30 November 2019 в 06:26
поделиться

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

Это сработает только для некоторых вещей, но что вы пытаетесь сделать?

3
ответ дан 30 November 2019 в 06:26
поделиться

Лучше, если вы проверите, на какой платформе работает ваш скрипт (используя sys.platform ), и выполните тест на основе этого, например, импортируйте некоторую функцию hasAdminRights с другой платформы. -specific module.

В Windows вы можете проверить, доступна ли запись в Windows \ System32 , используя os.access , но не забудьте попытаться получить фактический путь к папке "Windows" системы, возможно используя pywin32. Не кодируйте жестко.

3
ответ дан 30 November 2019 в 06:26
поделиться

Членство в группе администраторов (домен / локальное / предприятие) - это одно.

настройка вашего приложения таким образом, чтобы не использовать общие привилегии, и настройка детализированных прав - лучший вариант, особенно если приложение

тестирование для определенных именованных привилегий (se_shutdown se_restore и т. д.), права доступа к файлам более удобны и их легче диагностировать.

1
ответ дан 30 November 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: