如何通过子进程调用运行具有管理员权限的子进程? 例如:
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe","Get-HotFix"])
我尝试了runAS
和user:Administrator
而没有......
我需要使用带有python管理员权限的cmd执行以下命令。有没有人知道如何做到这一点?
sc config vss start=auto
我认为
subprocess.call((["runAS","user:Administrator","C\Windows\system32\cmd.exe","sc config vss start=auto"]))
但这不起作用。
答案 0 :(得分:0)
使python代码调用Windows管理员权限
from __future__ import print_function
import ctypes, sys
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
# The code to run is added here
else:
if sys.version_info[0] == 3:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
else:#in python2.x
ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1)
如果您以非管理员权限运行它,则您已经运行了两次代码,第一次运行时,您没有管理员权限,第二次您具有管理员权限。
您可以参考以下文章: https://blog.csdn.net/qq_17550379/article/details/79006655