首页 > 解决方案 > 如何从 python 以管理员身份运行 explorer.exe

问题描述

背景:

我想以管理员身份从 python 运行 ESET Internet Security gui 文件。它被命名为 egui.exe。所以在它的属性中,在兼容性下,我选中了“以管理员身份运行这个程序”复选框,所以它总是以管理员身份运行。

另一个注意事项是,由于某种原因,如果我像这样在 python 中运行这个文件,这似乎超出了我的范围:

os.startfile("c:\\program files\\ESET\\ESET Security\\egui.exe")

或者

os.system("c:\\program files\\ESET\\ESET Security\\egui.exe")

它会冻结,什么也不做。我在 CMD 中测试了相同的方法,如下所示:

c:\Program Files\ESET\ESET Security>egui.exe
c:\Program Files\ESET\ESET Security>start egui.exe

但这两者都会导致 CMD 冻结并且什么也不做,甚至 ctrl + c 也不会中断它,并且 CMD 应该关闭。

我做了什么:

以某种方式起作用的方法是通过 explorer.exe 运行 exe 文件:

os.system('explorer.exe "c:\\program files\\ESET\\ESET Security\\egui.exe"')

这不会冻结,但问题是因为我希望 egui.exe 以管理员身份运行,它会触发 UAC 提示,这是不可接受的,因为该程序应该是使用 GUI 自动化的测试。

问题:

当我的程序本身以管理员身份运行时,我可以以管理员身份运行其他程序而不会触发 UAC 提示。但是我不能通过 explorer.exe 运行它,我认为这是因为 explorer.exe 本身不是管理员。所以问题是我如何以管理员身份运行 explorer.exe?由于显而易见的原因,每次都输入密码也是不可接受的。

PS:很遗憾,explorer.exe 的属性中没有兼容性设置。

标签: pythonexplorer

解决方案


推荐阅读