Запустите приложение Python как администратор, не запрашивая страницу администратора - PullRequest
0 голосов
/ 31 октября 2019

Можем ли мы запустить приложение python от имени администратора, сохранив учетные данные администратора в коде Python, а когда приложению Python требуются права администратора, оно должно использовать учетные данные администратора, хранящиеся в его коде, и работать с правами администратора. Но он не должен запрашивать страницу администратора.

Пусть учетные данные администратора должны быть Имя пользователя: admin pass: admin @ 123

1 Ответ

0 голосов
/ 05 ноября 2019

Это код, который я успешно использовал на WinXP и Win7, и я не вижу причин, почему он не должен работать на Win10.

global userH
userH = None
def try_login(name, domain, password):
    global userH
    try:
        logging.info("Trying to login as: %s/%s" % (domain, name))
        userH = win32security.LogonUser(name, domain, password,
                win32security.LOGON32_LOGON_INTERACTIVE,
                win32security.LOGON32_PROVIDER_DEFAULT)
        if None!=userH:
            win32security.ImpersonateLoggedOnUser(userH)
            logging.info("Logged in: %s/%s" % (domain, name))
            return True
    except:
        logging.exception("Windows login")
        if userH:
            try:
                win32api.CloseHandle(userH)
            except:
                pass
        userH = None
    return False

def logout():
    if userH:
        try:
            win32security.RevertToSelf()
            win32api.CloseHandle(userH)
        except:
            pass
...