python中Plink
时间: 2024-01-13 14:04:40 浏览: 140
Blink.py
在 Python 中,可以使用 PyWin32 库来与 Plink 进行交互。PyWin32 是一个 Python 扩展,为 Python 提供了访问 Windows API 的接口。使用 PyWin32,可以通过 Python 脚本启动 Plink,向远程服务器发送命令,并获取命令输出。以下是一个使用 PyWin32 和 Plink 进行 SSH 远程连接的示例代码:
```python
import win32api
import win32pipe
import win32file
def run_command(command, host, user, password):
# 启动 Plink 进程
plink = win32api.ShellExecute(
None,
'open',
'plink.exe',
'-ssh %s@%s -pw %s %s' % (user, host, password, command),
'',
win32con.SW_HIDE
)
# 等待 Plink 进程结束
plink_process = win32api.OpenProcess(win32con.SYNCHRONIZE, False, plink[0].handle)
win32api.WaitForSingleObject(plink_process, win32event.INFINITE)
# 读取 Plink 输出
pipe = win32pipe.CreateNamedPipe(
r'\\.\pipe\plink_output',
win32pipe.PIPE_ACCESS_INBOUND,
win32pipe.PIPE_TYPE_BYTE | win32pipe.PIPE_WAIT,
1,
65536,
65536,
0,
None
)
win32pipe.ConnectNamedPipe(pipe, None)
output = win32file.ReadFile(pipe, 65536)[1]
win32pipe.DisconnectNamedPipe(pipe)
win32file.CloseHandle(pipe)
# 返回 Plink 输出
return output.decode('utf-8')
```
这个函数可以接受一个命令、主机名、用户名和密码,使用 Plink 在远程服务器上执行命令,并返回命令输出。注意,在使用 PyWin32 时,需要先安装 PyWin32 库,并且需要将 Plink.exe 的路径添加到系统环境变量中。
阅读全文