【问题标题】:Run python script as admin in windows在 Windows 中以管理员身份运行 python 脚本
【发布时间】:2018-01-20 18:40:09
【问题描述】:

我有一个脚本可以删除和替换C:\Windows 目录中的一些文件。

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

我该如何解决这个问题?

可能的解决方案: 实际上我试图修改只对 TrustedInstaller 用户具有所有权限的文件,所以我用这个https://github.com/jschicht/RunAsTI 来运行 python 脚本。

【问题讨论】:

  • 您是否尝试过使用“runas”cmd 命令?
  • 您是管理员,因此您可以取得所有权并授予自己所需的任何权限。您可以使用subprocess.call 运行takeown.exe 和icacls.exe。

标签: python windows admin elevated-privileges


【解决方案1】:

WindowsError error 5 在您没有执行操作的系统管理员权限时出现。
您可以尝试使用 Windows cmd 命令runas 强制脚本以管理员权限运行。
试试这样的:

runas /user:administrator_account path_to_script

只需将 administrator_account 替换为在您的计算机上具有权限的帐户名即可。此命令还将提示输入密码(如果帐户有一个设置)。 有关此命令的更多信息,您可以阅读here.

【讨论】:

  • 现在使用默认的 UAC 和策略设置,runas.exe 只能以您期望的方式使用“管理员”帐户 (RID 500),该帐户必须手动启用。其他管理员帐户使用拆分令牌登录,runas.exe 将使用标准令牌而不是提升的令牌创建进程。
  • 但是 OP 声称已经在提升的命令提示符下工作,因此 Python 应该已经具有管理员权限,在这种情况下,OP 可能正在尝试删除内存映射文件,例如加载的DLL、正在运行的可执行文件或映射的数据文件。内存管理器不允许删除内存映射文件。
  • 你说的完全正确,忘记了,谢谢提醒
  • 感谢您的回答,但我发现我需要修改的文件仅对 TrustedInstaller 具有所有权限(我更新了我的问题)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
相关资源
最近更新 更多