2014-08-28 501 views
2

我想用Python 3運行Windows命令。像這樣os.system(「echo hi」)。但是,如何運行需要管理員訪問的命令?你怎麼做到這一點?謝謝。如何在Python中使用admin運行cmd命令

+0

使用'runas'。參見,例如[this](https://stackoverflow.com/questions/10415653/run-batch-file-as-administrator-windows-7-command-run-as-from-network-file),如果輸入shell上的密碼不是一個選項,[this](https://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights) – hlt 2014-08-28 21:01:50

+0

什麼是runas? 。 – 2014-08-28 21:02:14

+0

這是一個內置Windows程序,允許您像其他用戶一樣執行其他程序,只要您知道密碼即可。見例如我的評論中的第一個鏈接。 – hlt 2014-08-28 21:03:47

回答

4

您可以使用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) 
+0

優秀!我們可以在沒有彈出窗口的情況下做到這一點嗎? – 2014-08-28 22:36:48

+0

您的意思是[用戶帳戶控制](http://en.wikipedia.org/wiki/User_Account_Control)彈出窗口?你真的不應該禁用它。在[這個問題]中列出了一些方法(http://superuser.com/questions/200788/how-to-run-an-app-as-administrator-without-the-prompt),但它們都有點兒尷尬。 – snowcrash09 2014-08-29 08:36:46

+0

哦。這真的很煩人!\ – 2014-08-29 16:59:28