当我开始
os.system('"runas /user:USERNAME "C:/Python27/python.exe shell.py""')
它在控制台中一遍又一遍地迭代。
我需要从电脑所有者那里启动一个程序来提升权限,因为程序将在 Win7 上使用,这导致关心 UAC。
我决定采用一种在内部启动程序的方式,但具有提升的权限并立即退出。
我用了这段代码
import os
import sys
import win32com.shell.shell as shell
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
` 但在我的情况下,没有以 ShellExecuteEx 开头。而不是 ShellExecuteEx 我使用 runas 命令放置 os.system,该命令在控制台字符串中一遍又一遍地迭代 runas /user:USERNAME "C:/Python27/python.exe shell.py"。
import os
import sys
import win32com.shell.shell as sh ASADMIN = '/user:@'
os.system('"runas /user:=@COMPANY_NAME "C:/Python27/python.exe shell.py""')
sys.exit(0)
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([ASADMIN] + ['c:\\Python27\\python.exe', script] + sys.argv[1:])
sh.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
sys.exit(0)
这是我的代码。