簡體   English   中英

使用PsExec時如何在pythonsub進程中訪問stdin和stdout

[英]How to access stdin and stdout in a pythonsub process when using PsExec

我在 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

開始執行遠程腳本對象。

對象.執行

參數

目的

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM