首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pysphere在远程计算机上执行命令

如何使用pysphere在远程计算机上执行命令
EN

Stack Overflow用户
提问于 2013-08-07 11:50:57
回答 2查看 1.9K关注 0票数 0

拥有我想要执行一些命令的VMware VM,例如关闭/r或dir /o:d等.来自远程机器。使用模块pysphere模块与VM通信。

我尝试了start_process,但它只是为cmd.exe创建进程--我创建进程的代码是VM_object.start_process('cmd.exe',args=“关机/r")

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-14 12:18:47

运行命令cmd.exe时,需要添加/c:

代码语言:javascript
复制
cmd.exe /c shutdown /r

正如解释过的here一样,您需要告诉cmd.exe运行作为字符串传递的参数。您的命令只是运行cmd.exe,而没有实际发出作为参数传递的命令。/c标志指示cmd.exe执行传递的参数。

票数 1
EN

Stack Overflow用户

发布于 2015-06-09 08:54:11

虚拟机中的VM_object.start_process('cmd.exe',args=“关机/r")此命令将被解释为

代码语言:javascript
复制
cmd.exe "shutdown /r"

因为start_process使用subprocess.list2cmdline()方法解析"args“参数。list2cmdline()为包含空格的list元素添加引号。

接下来,关于cmd参数。使用

代码语言:javascript
复制
cmd /?

来理解您应该在代码中使用什么。在我的任务中有两个无懈可击的args:

  • cmd.exe /c .执行后关闭cmd窗口
  • cmd.exe /k .,在执行命令后不关闭控制台窗口

例如,当您的python询问批处理文件的最后%错误级别%时,/k是有用的,它由popen执行。

所以,我认为,您的代码应该是:

代码语言:javascript
复制
VM_object.start_process('cmd.exe', args=["/c","shutdown", "/r"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18102663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档