2011-01-10 167 views
4

我开始从Windows 7命令行下面的脚本具有管理员权限:Python:如何用管理员权限启动进程?

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

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

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

我也分配了功能“运行此程序作为管理员”下属性>兼容性>权限级别python.exe 。这没有改变任何东西。

当我通过双击屏幕打开它时,该程序的行为与此相反。我在这里错过了一些重要的东西吗?以这种方式调用的进程是否会像使用管理员权限启动一样运行?

感谢您的帮助提前!

干杯 -

帕特

+0

可能重复[如何在Windows上使用提升特权运行python脚本](http://stackoverflow.com/questions/19672352/how-to-run-python-script-with-elevated-privilege-on-windows ) – 2016-09-01 03:44:18

回答

2

我没有访问Vista或Windows 7,但你应该能够使用runas命令。

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

谢谢,Chinmay ...我试过这个,并被Python shell提示输入管理员密码。当我输入正确的密码时,它被拒绝为登录失败。为了确保我没有输入密码,我做了好几次。我真的不明白发生了什么事。另外,我不明白为什么我需要像这样启动子进程,如果我从管理员shell运行脚本。你能帮我理解吗? – pat 2011-01-10 11:54:28

0

好的......我找出了问题所在。它实际上与权限无关,与我最初的怀疑相反。对于那个很抱歉!

应用程序无法正常工作的原因是因为Python脚本在另一个目录中找到并被调用。因此,某些应用程序的依赖关系未被正确引用,并且找不到需要正确运行的一些文件。将python脚本移到与被调用的应用程序相同的目录是解决这个问题的一种方法。

对不起,似乎是这个问题的误导性初始解释。

相关问题