【问题标题】:Python: How to start a process with Administrator Permissions?Python:如何以管理员权限启动进程?
【发布时间】:2011-06-06 11:09:04
【问题描述】:

我从具有管理员权限的 Windows 7 命令行启动以下脚本:

import win32com.client
import time
import SendKeys
import os
from ctypes import *

shell = win32com.client.Dispatch("WScript.Shell")

os.startfile("C:\...exe")

我还在“属性”>“兼容性”>“特权级别”下为 python.exe 分配了“以管理员身份运行此程序”功能。这并没有改变任何东西。

程序以这种方式打开时的行为与我通过双击屏幕打开它时的行为仍然不同。我在这里遗漏了一些重要的信息吗?这样调用的进程会不会像以管理员权限启动一样运行?

提前感谢您的帮助!

干杯-

拍拍

【问题讨论】:

标签: python windows-7 uac process-management


【解决方案1】:

我无法访问 Vista 或 Windows 7,但您应该可以使用runas 命令。

import subprocess
subprocess.call(['runas', '/user:Administrator', 'C:/my_program.exe'])

【讨论】:

  • 谢谢,Chinmay ... 我试过了,Python shell 提示输入管理员密码。当我输入正确的密码时,它被拒绝为登录失败。我这样做了几次,以确保我没有输入密码错误。我真的不明白发生了什么。另外,如果我从管理员 shell 运行脚本,我不明白为什么需要像这样启动子进程。你能帮我理解一下吗?
  • @pat 事件虽然我正在恢复线程,但您无法登录的原因是因为管理员可能不是您想要使用的用户...您应该尝试:@987654324 @
  • 这是一个有用的解决方案,但我认为它缺少您写入标准输入的部分,如用户 Back2Basics 所示:stackoverflow.com/questions/20505893/…
【解决方案2】:

好的……我发现了问题所在。与我最初的怀疑相反,它实际上与权限无关。很抱歉!

应用程序无法正常工作的原因是 Python 脚本在另一个目录中定位和调用。出于这个原因,应用程序的某些依赖项没有被正确引用,并且它找不到正常运行所需的一些文件。将 python 脚本移动到与调用的应用程序相同的目录中是解决此问题的一种方法。

再次抱歉,最初对似乎是问题的误导性解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 2011-05-05
    • 2012-06-25
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多