【发布时间】:2016-09-29 22:47:06
【问题描述】:
我正在尝试使用 python 来触发一个 Powershell 脚本,当我从我与 Powershell 的连接(默认为“以管理员身份运行”)运行它时,该脚本运行良好。但是,当从 python 界面启动时,它给了我一个权限被拒绝的错误。这是我尝试运行的一些代码的 sn-p,它在由 Python 启动时失败,但在通过 powershell 提示符启动时没有。
elif "!ExchangeCheck" in message:
response = subprocess.Popen("powershell -ExecutionPolicy Unrestricted -File C:\users\.....\code\servicecheck.ps1", shell=True, stdout=subprocess.PIPE).stdout.read()
status = "Exchange services are: \n"
for line in thing:
if "Microsoft Exchange" in response:
status += line
print status
希望找到一种将 Popen 或类似 paramiko 用于 powershell 的方法,它会尝试“以管理员身份运行”或至少在尝试运行时使用我的本机权限?
更新:我已验证我的 python 脚本以管理员用户身份运行。
更新 2:我认为解决方案是使用 runas 命令运行脚本来增加预期目标,但我不知道这是否是“好”的做事方式,这似乎不太理想。
【问题讨论】:
-
Python 进程是否以提升的权限运行?
-
@jpmc26 我有一个管理控制台,我可以从中启动 python 脚本。所以从管理员命令提示符 --> python program.py
-
尝试使用代码here 来检查您的Python 进程是否具有管理员权限。
-
@jpmc26 在启动该文件时响应为真,就像我启动我的脚本一样。我猜这是当我的脚本尝试启动 powershell 时权限丢失的地方 =(
标签: python powershell permissions