Как запустить полнофункциональный командный файл из скрипта Python? - PullRequest
1 голос
/ 30 мая 2019

Я присматриваю за лабораторией с несколькими установками, и я разрабатываю автоматизированный процесс для проведения экспериментов. Триггер для загрузки экспериментов заключается в использовании определенного имени пользователя. У меня есть блок-схема, которая идентифицирует поведение при входе в систему, так что, когда буровая установка зарегистрирована на конкретное имя пользователя, и никто не вошел в систему, тогда она вступает во владение и проводит эксперименты ночью и т. Д.

Мне нужно иметь возможность использовать python для запуска командного файла для выхода из системы пользователей (если нет команды python, которую я могу использовать). Я написал командный файл, который делает это (LogOffIP.bat). Если я запускаю командный файл из командной строки, он работает нормально, и пользователи (выбираемые идентификатором сеанса на удаленном ПК) выходят из системы, и все в порядке.

У меня есть сценарий python, который вызывает файл bat с теми же аргументами, и командная строка появляется и запускается, но я получаю другой ответ, такой как «logoff не распознается как внутренняя или внешняя команда», и тот же для ксерв.

Пожалуйста, проверьте мой код ниже и помогите мне найти решение для Python. Спасибо ...

LogOffIP.bat:

@echo off
echo Logging off Rig %1
echo at IP address %2
echo using session ID %3
echo.
echo.
logoff %3 /server:%2
echo Done...
echo
quser /server:%2
pause
rem exit

Из питона ...

Я пытался:

import os os.system(r"path\LogOffIP.bat G 100.100.100.100 12")

это дает 'logoff' не распознан.

Я пробовал:

import subprocess
answer = subprocess.call([path\LogOffIP.bat, G, 100.100.100.100, 1'])

this gives WindowsError: [Error 2] The system cannot find the file specified in python.

Я пробовал: answer = subprocess.Popen([r'path','LogOffIP.bat','G 100.100.100.100 1'])

this gives WindowsError: [Error 5] Access is denied in python

Я использовал поддельные IP-адреса в примерах для защиты реальных.

Я ожидаю небольшую задержку, и пользователь выходит из системы, как это видно при запуске командного файла из командной строки. os.system, похоже, не поддерживает все команды dos.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...