【发布时间】:2018-03-14 10:26:31
【问题描述】:
如何通过子进程调用运行具有管理员权限的子进程? 示例:
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe","Get-HotFix"])
我尝试了runAS 和user:Administrator,但什么也没用......
我需要它来使用具有管理员权限的 cmd 使用 python 执行以下命令。有谁知道如何做到这一点?
sc config vss start=auto
我觉得
subprocess.call((["runAS","user:Administrator","C\Windows\system32\cmd.exe","sc config vss start=auto"]))
但这不起作用。
【问题讨论】:
-
感谢您的回答,它的真实/用户:对此感到抱歉。但是如果我写 /user:Mynameuser 这应该不会运行??
-
应该是
subprocess.call(['runas.exe', '/savecred', '/user:Administrator', 'sc.exe config vss start=auto'])。第一次会要求输入密码,但以后会记住。同样,请注意,将“管理员”与 runas.exe 一起使用是绕过 UAC 的一种方法,不应在生产代码中使用,因为该帐户通常被禁用。您可以使用按需运行的任务或服务提升管理员组中的普通帐户。 -
当然,安装任务或服务需要管理员权限。网上有多个示例显示如何通过
ShellExecute使用“runas”动词检查管理员访问和重生,该动词通过 UAC 同意对话框请求提升。 -
哦,非常感谢您所做的一切。我要试试你告诉我的。但我不知道我会开始调查这件事
标签: python windows subprocess