我要照顾一个装有许多装备的实验室,并正在开发一个用于运行实验的自动化流程。加载实验的触发条件是使用特定的用户名。我有一个流程图,该流程图可以标识登录时的行为,以便在将钻机预订为特定的用户名而没有其他人登录时,它将接管并在夜间进行实验等。
我需要能够使用python运行批处理文件以注销用户(除非有我可以使用的python命令)。我已经编写了执行此操作的批处理文件(LogOffIP.bat)。如果我从命令提示符下运行该批处理文件,它可以正常工作,并且用户(通过远程PC上的会话ID选择)注销后,一切都很好。
我有一个使用相同参数调用bat文件的python脚本,并且命令提示符弹出并运行,但是得到了不同的响应,例如“'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 os
os.system(r"path\LogOffIP.bat G 100.100.100.100 12")
这将导致无法识别“注销”。
我尝试过:
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地址来保护真实的IP地址。
我希望有一个短暂的延迟,并且从命令提示符运行批处理文件时看到用户已注销。 os.system似乎并不支持所有的dos命令。