首页
学习
活动
专区
工具
TVP
发布

Windows下Python用管理员执行命令或者程序

前言

最近想通过Python来调用LoadRunner执行命令以及结果分析,但是由于和谐版原因,LoadRunner需要用管理员权限来运行,手动执行可以右键-管理员身份运行,那Python脚本在执行的时候如何获取管理员权限呢?(或许有人说直接管理员身份运行Python脚本即可,但是如果是通过IIS,FastCGI来调用呢?)。所以网上找了很多方案,下面对各种方案进行了说明,最终找到了两种可行方案。

1. 调用常规的windows命令

其中的时候是一个列表,的时候是一个字符串,即要执行的命令,例如

至于subprocess模块的详细介绍,参考Python网站,地址:https://docs.python.org/2/library/subprocess.html

2. 通过管理员来调用windows命令1. 手工方式:使用

通过命令行来执行

runas的具体参数可以参考微软的文档,地址:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc771525(v=ws.11)

2. 如何通过Python来调用

手工方式可以解决我们的问题,但是需要输入密码,需要另外的方案,下面整理了几种方案

1. 使用调用

使用方式输入密码:无法满足需求

使用模拟输入密码:无法满足需求

使用的参数:满足需求

参数会保存输入的密码,要管理保存的密码,在_控制面板-凭据管理器中_可以查看。

首先执行一次命令然后保存密码

输入密码回车,密码就保存到了本机,下次可以直接使用而不用输入密码,再使用Python脚本进行调用即可。

2. 使用命令

同上,直接使用subprocess调用即可。

如果提示不是内部或者外部命令,可以使用绝对路径,原因是64位系统,会将命令重定向到SysWOW64。所以可以访问下真正的命令。 参考连接

3. 使用库

相关介绍:网址,参考链接

下面是使用样例

但是上面的命令是针对linux的,如果是windows需要这样来使用

很遗憾,这种方式也不能满足需求,无法输入密码,但是这个模块提供了命令行交互很好的方式,以后在linux下可以使用。

4. 使用命令

网上的使用样例,但是具体如何使用没有找到很好的办法

5. 使用pywin32模块来模拟输入密码

首先下载pywin32安装,之后使用下面的代码,但是经我测试没有通过。参考链接

6. 创建管理员身份执行的快捷方式

这种方式听起来应该可行,但是没有详细了解。

3. 总结

多种方式进行测试,最终可以使用的是

使用命令来执行

使用并加上

如果有其它更好的方式,欢迎提出各种建议。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126G0XCUG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券