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