远程关机在Python中不起作用

远程关机在Python中不起作用,python,cmd,system-shutdown,Python,Cmd,System Shutdown,我正在尝试使用Python2.7.7编写一个小脚本,该脚本将ping一个IP地址,并确定该PC是打开还是关闭,并相应地更改该系统的电源状态。我非常依赖Python模块子流程和wakeonlan。我在ping或使用WOL时没有任何问题,但是关机功能的运行方式非常奇怪 使用命令提示符下的命令shutdown-s-t0/m\\XXX.XXX.X以及cmd中Python交互式shell中的以下命令可以正常工作: import subprocess ip = 'XXX.XXX.X.X' # use f

我正在尝试使用Python2.7.7编写一个小脚本,该脚本将ping一个IP地址,并确定该PC是打开还是关闭,并相应地更改该系统的电源状态。我非常依赖Python模块
子流程
wakeonlan
。我在ping或使用WOL时没有任何问题,但是关机功能的运行方式非常奇怪

使用命令提示符下的命令shutdown-s-t0/m\\XXX.XXX.X以及cmd中Python交互式shell中的以下命令可以正常工作:

import subprocess
ip = 'XXX.XXX.X.X'   # use for example
subprocess.call('shutdown -s -t 0 /m \\\\%s' % ip)
但是从Python脚本在中运行相同的命令会返回以下错误:

XXX.XXX.X.X
:输入的计算机名无效,或者目标计算机不支持远程关机。请检查名称,然后重试或与系统管理员联系。(53)

有没有我没有想过的背景行为?可能与子流程模块有关?提前谢谢

你试过使用吗?蒂姆·戈尔登的网站上有一篇关于这项技术的描述,看起来它应该能起作用。签名是
InitiateSystemShutdown(计算机名、消息、超时、bForcClose、bRebootAfterShutdown)
。本主题中有一个使用pywin32的示例。