psexec运行从主机传递的python脚本

时间:2014-07-25 20:02:15

标签: python python-2.7 psexec

我试图通过psexec在远程计算机上运行python脚本。我可以使用以下内容连接并运行python.exe:

C:\test>psexec \\192.168.X.X -u domain\administrator -p password -i C:\Anaconda\python.exe

python.exe的路径是远程计算机上的路径。这将在远程计算机上打开一个python窗口 - 一切都很好。

我现在要从主机传递一个python脚本以在远程上运行。此脚本位于C:\ test \ test.py中的主机上。我试过了

psexec \\192.168.X.X -u domain\administrator -p password -i "C:\Anaconda\python.exe" -c C:\test\test.py

并获得:

C:\Anaconda\python.exe exited on 192.168.X.X with error code 1.

我也尝试过-c test.py没有完整路径,并得到了类似的错误。我的想法是远程应用程序找不到C:\ test \ test.py。我希望能够从主机传递脚本。

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

如果.py扩展已与远程计算机上的Python安装相关联,则可以通过从命令行中删除Python可执行文件来运行Python脚本:

psexec \\192.168.X.X -u domain\administrator -p password -i -c C:\test\test.py

请注意我没有尝试过这个,因为我目前无法访问远程计算机,所以我无法保证它能够正常工作。

该行

psexec \\192.168.X.X -u domain\administrator -p password -i "C:\Anaconda\python.exe" -c C:\test\test.py

可能正在尝试在远程计算机上运行命令"C:\Anaconda\python.exe" -c C:\test\test.py。换句话说,Python可能正在解释-c开关,而不是PsExec。 Python开关-c指定要运行的一些Python代码,当然文件名不是有效的Python代码:

C:\Users\Luke>python -c "print 2 + 2"
4

C:\Users\Luke>python -c C:\test\test.py
  File "<string>", line 1
    C:\test\test.py
     ^
SyntaxError: invalid syntax

C:\Users\Luke>echo %ERRORLEVEL%
1

答案 1 :(得分:0)

能够从远程计算机和主机访问共享驱动器上的python脚本,因此通过从主机复制到共享并从远程计算机上的共享读取,我有一个合适的解决方法(-i开关)不需要)。

psexec \\remote_machine_name -u domain\user -p pswrd -i C:/Anaconda/python.exe \\server\share\test\test.py

相关:如果您在Windows上运行并从python脚本写入UNC路径,即上面的test.py,那么有用的路径格式化帮助:

python copy files to a network location on Windows without mapping a drive