如何从python脚本运行功能齐全的批处理文件?

如何从python脚本运行功能齐全的批处理文件?,python,logoff,Python,Logoff,我负责管理一个有很多设备的实验室,我正在开发一个自动化的实验流程。加载实验的触发器是使用特定的用户名。我有一个流程图,可以识别登录时的行为,这样当一台钻机被预订到特定的用户名而没有其他人登录时,它就会接管并在夜间运行实验等 我需要能够使用python运行批处理文件来注销用户(除非我可以使用python命令)。我已经编写了一个批处理文件(LogOffIP.bat)。如果我在命令提示符下运行批处理文件,它工作正常,用户(由远程PC上的会话id选择)注销,一切正常 我有一个python脚本,它使用相同

我负责管理一个有很多设备的实验室,我正在开发一个自动化的实验流程。加载实验的触发器是使用特定的用户名。我有一个流程图,可以识别登录时的行为,这样当一台钻机被预订到特定的用户名而没有其他人登录时,它就会接管并在夜间运行实验等

我需要能够使用python运行批处理文件来注销用户(除非我可以使用python命令)。我已经编写了一个批处理文件(LogOffIP.bat)。如果我在命令提示符下运行批处理文件,它工作正常,用户(由远程PC上的会话id选择)注销,一切正常

我有一个python脚本,它使用相同的参数调用bat文件,命令提示符弹出并运行,但我得到了不同的响应,如“'logoff'不被识别为内部或外部命令”,对于quser也是如此

请查看下面我的代码,并帮助我找到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
从python

我试过:

import subprocess
answer = subprocess.call([path\LogOffIP.bat, G, 100.100.100.100, 1'])
导入操作系统
操作系统(r“path\LogOffIP.bat G 100.100.100.100 12”)

这导致无法识别“注销”

我试过:

import subprocess
answer = subprocess.call([path\LogOffIP.bat, G, 100.100.100.100, 1'])
这将导致WindowsError:[Error 2]系统找不到python中指定的文件。

我试过:
answer=subprocess.Popen([r'path','LogOffIP.bat','G 100.100.100.1'])

这会导致WindowsError:[Error 5]在python中访问被拒绝

我在示例中使用了伪造的IP地址来保护真实的IP地址


我预计会有一个短暂的延迟,用户会像从命令提示符运行批处理文件时所看到的那样注销。os.system似乎不支持所有dos命令。

logoff.bat的内容是什么?请尝试
C:\Windows\Sysnative\logoff.exe
;您在没有管理员权限的情况下运行脚本。注销%3/服务器:%2问题已编辑,LogOffIP.bat现在已清除…C:\Windows\Sysnative\logoff.exe;这在我的电脑上不存在。我正在运行windows 10。注销.bat的内容是什么?请尝试
C:\windows\Sysnative\logoff.exe
;您在没有管理员权限的情况下运行脚本。注销%3/服务器:%2问题已编辑,LogOffIP.bat现在已清除…C:\Windows\Sysnative\logoff.exe;这在我的电脑上不存在。我正在运行windows 10。