2011-01-10 101 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腳本移到與被調用的應用程序相同的目錄是解決這個問題的一種方法。

對不起,似乎是這個問題的誤導性初始解釋。