在Windows中以管理员身份运行python脚本

在Windows中以管理员身份运行python脚本

问题描述:

我有一个脚本可以删除并替换C:\Windows目录中的某些文件。在Windows中以管理员身份运行python脚本

我以管理员身份启动命令行,然后启动我的python脚本。当脚本试图从C:\Windows中删除文件时,我得到WindowsError error 5

我该如何解决这个问题?

可能的解决办法: 其实我是想修改其拥有所有权限只对用户的TrustedInstaller文件,所以我用这个https://github.com/jschicht/RunAsTI运行Python脚本。

+0

您是否尝试使用“runas”cmd命令? – iColdBeZero

+0

你是一名管理员,所以你可以获得所有权并为自己授予你想要的任何权限。您可以使用'subprocess.call'来运行takeown.exe和icacls.exe。 – eryksun

WindowsError error 5当您没有系统管理员权限来执行操作时发生。
您可以尝试使用Windows cmd命令runas强制脚本与管理员权限一起运行。
尝试是这样的:

runas /user:administrator_account path_to_script 

只是拥有计算机上的特权帐户名称替换administrator_account。此命令也会提示输入密码(如果帐户有一个设置)。 有关此命令的更多信息,您可以阅读here.

+1

使用默认的UAC和策略设置如今,runas.exe只会工作,你所期望的“管理员”帐户(RID 500),它必须手动启用的方式。其他管理员帐户登录所用分裂的道理,并且runas.exe将创建使用标准的令牌,而不是提升的令牌的过程。 – eryksun

+0

但OP声称是从提升的命令提示的工作已经,所以Python应该已经有管理员权限,在这种情况下,OP可能试图删除存储器映射文件,比如装入DLL,运行可执行文件,或映射数据文件。内存管理器不允许删除内存映射文件。 – eryksun

+0

你是完全正确的,忘了这一点感谢便条 – iColdBeZero