如何解决使用PsExec时如何在pythonsub进程中访问stdin和stdout
我正在python子进程中运行psexec,
import subprocess
prog = subprocess.Popen([
'C:\\Users\\user\\tools\\PSTools\\PsExec.exe','-u','admin',"-p","pass","cmd.exe"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True
)
在执行此操作时,psexec会很好地打开一个新的提升的终端窗口,我要问的是无论如何都可以通过子进程来承担对该窗口的控制,因为这是最初启动它的原因?因为此时stdin和stdout似乎只是启动psexec的子进程,而不是psexec产生的终端。
对不起,如果这是一个愚蠢的问题,我只是在寻求帮助
解决方法
PsExec使用管理共享将文件复制到目标计算机,然后将其作为服务启动,然后该服务启动指定的程序。因此您的程序没有连接。
使用COM
开始执行远程脚本对象。
object.Execute
参数
对象
WshRemote对象
备注
该脚本触发WshRemote对象的Start事件 开始执行。不要将Execute方法与Exec混淆 (WScript对象的)方法。
示例
下面的示例演示Execute方法如何用于 创建一个WshRemote对象(启动远程脚本的实例)。
[VBScript]
Dim Controller,RemoteScript Set Controller = WScript.CreateObject("WSHController") Set RemoteScript = Controller.CreateScript("remote1.js") RemoteScript.Execute Do While RemoteScript.Status <> 2 WScript.Sleep 100 Loop
[JScript]
var Controller = WScript.CreateObject("WSHController"); var RemoteScript = Controller.CreateScript("remote1.js"); RemoteScript.Execute(); while (RemoteScript.Status != 2) { WScript.Sleep(100);
从帮助http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。