如何在Python中以管理员身份运行cmd命令

10

我希望用Python 3来运行一个Windows命令,就像这样的os.system("echo hi")。不过,如果要运行需要管理员访问权限的命令,应该怎么做呢?谢谢。


使用 runas 命令。例如,参见 此处。如果在 shell 中输入密码不是一个选项,则参见 此处 - hlt
这是一个内置的Windows程序,允许您以其他用户的身份执行其他程序,前提是您知道他们的密码。请参见我的评论中的第一个链接。 - hlt
问题在于这个程序将被分发,显然无法知道密码。 - Luke Dinkler
你不能让用户输入密码吗? - Padraic Cunningham
我想是这样的。runas 的代码会是什么样子? - Luke Dinkler
1个回答

10
你可以使用包含在Pywin32扩展中的ShellExecuteEx Win32 API包装器来实现此操作。如果你正在使用类似ActivePython的东西,你可能已经拥有了这些扩展。
要使用ShellExecuteEx:
import win32com.shell.shell as shell
commands = 'echo hi'
shell.ShellExecuteEx(lpVerb='runas', lpFile='cmd.exe', lpParameters='/c '+commands)

你是指用户账户控制弹窗吗?你不应该禁用它。虽然这个问题列出了一些绕开它的方法,但它们都有点不方便。 - snowcrash09
1
如果我们有用户的密码会怎样? - Luke Dinkler
我只是要关闭这个问题,然后开始另一个。谢谢! - Luke Dinkler
1
@LukeDinkler 一个停止弹出窗口的方法:以管理员身份运行您的Python,然后执行脚本。然后自动所有脚本都将具有管理员访问权限,并且它们将不会显示弹出窗口。 - Deepak Yadav
1
这在Python 3中似乎已经被弃用了,我很难找到类似的Python 3方法。 - Bernd Wechner
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接