Как запустить psexec с помощью subprocess.run ()? - PullRequest
0 голосов
/ 15 января 2019

Вот фрагмент кода:

import subprocess

output = subprocess.run(["psexec.exe",
                        "\\\\<machine-name>", 
                        "/u", "<machine-name>\\TestAdmin", 
                        "/p", "<password>",
                        "cmd /c dir"], 
                        capture_output=True, 
                        text=True,
                        shell=True)

print(output.stdout)
print(output.stderr)

И вот что я получаю:

E:\python-scripts>python runpsexec.py

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

The system cannot find the path specified.
Connecting to <machine-name>...


Starting PSEXESVC service on <machine-name>...


Connecting with PsExec service on <machine-name>...


Starting cmd /c dir on <machine-name>...


PsExec could not start cmd /c dir on <machine-name>:

Я также попытался передать параметр -s, чтобы запустить его как системную учетную запись. Если я напрямую запускаю psexec из командной строки cmd, я могу запустить ту же команду и получить правильный вывод.

Есть ли какие-либо ограничения при запуске psexec через subprocess.run()? Или я что-то упустил?

...