【问题标题】:Run python app as admin without prompting for admin page以管理员身份运行 python 应用程序而不提示输入管理页面
【发布时间】:2020-02-26 10:41:45
【问题描述】:

我们能否通过将管理员凭据存储在 python 代码中来以管理员身份运行 python 应用程序,当 python 应用程序需要管理员权限时,它应该使用存储在其代码中的管理员凭据并以管理员权限运行。但它不应该提示进入管理页面。

让管理员凭据 用户名:管理员 通过:admin@123

【问题讨论】:

  • 哪个操作系统?无论如何,处理这个问题的最好方法是在你正在运行的程序之外,这意味着会有一些运行器,它执行特权的提升,然后启动你的程序。
  • 谢谢回复,操作系统是Windows(10)
  • 谢谢你,我会尝试你的概念。

标签: python python-3.x elevated-privileges admin-rights


【解决方案1】:

这是我在 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

【讨论】:

  • 非常感谢您的代码。它也适用于 Windows 10。我们可以通过使用管理员凭据登录来执行任何管理员活动吗?
猜你喜欢
  • 2012-04-28
  • 2011-12-29
  • 2013-05-31
  • 2022-01-08
  • 2011-09-24
  • 2010-12-19
  • 1970-01-01
相关资源
最近更新 更多