Я хотел бы отдать должное Владу Бездену , потому что без его использования модуля win32net этот ответ здесь не существовал бы.
Если вы действительно хотите узнать, может ли пользователь выступать в роли администратора после UAC , вы можете сделать следующее. Он также перечисляет группы, в которых находится текущий пользователь, если это необходимо.
Он будет работать на большинстве (всех?) настройках языка .
Локальная группа просто должна начать с «Admin», что обычно и происходит ...
(Кто-нибудь знает, будут ли некоторые настройки другими?)
Чтобы использовать этот фрагмент кода, вам нужно установить модуль pywin32
,
если у вас его еще нет, вы можете получить его из PyPI: pip install pywin32
ВАЖНО ЗНАТЬ:
Для некоторых пользователей / программистов может быть важно, чтобы функция os.getlogin()
была доступна только с python3.1 в операционных системах Windows ...
Python3.1 Документация
win32net Reference
from time import sleep
import os
import win32net
if 'logonserver' in os.environ:
server = os.environ['logonserver'][2:]
else:
server = None
def if_user_is_admin(Server):
groups = win32net.NetUserGetLocalGroups(Server, os.getlogin())
isadmin = False
for group in groups:
if group.lower().startswith('admin'):
isadmin = True
return isadmin, groups
# Function usage
is_admin, groups = if_user_is_admin(server)
# Result handeling
if is_admin == True:
print('You are a admin user!')
else:
print('You are not an admin user.')
print('You are in the following groups:')
for group in groups:
print(group)
sleep(10)
# (C) 2018 DelphiGeekGuy@Stack Overflow
# Don't hesitate to credit the author if you plan to use this snippet for production.
Ох и ГДЕ from time import sleep
и sleep(10)
:
ВСТАВИТЬ собственный импорт / код ...