我被要求找到一种从 Linux 系统连接到多个 Windows 服务器之一的方法。理想情况下,我们需要做的是连接到导致问题的任何 Windows 服务器,终止进程,然后重新启动该进程。理想情况下,它应该可以放入可以从 Linux 计算机运行的脚本中。到目前为止我发现的所有解决方案都涉及某种远程桌面连接,但正如我所说,命令行解决方案更好?这可能吗?我很抱歉...不完全是一个编程问题,但我已经无计可施了。
我在 Windows 机器上将 Cygwin 与 OpenSSH 服务器一起使用(但在安装程序中无需 Cygwin 也可以使用),并且可以从 Linux 机器上通过 SSH 登录以使用命令行执行操作。我不杀死进程,我进行构建。但同样的概念也适用。
Cygwin 的默认 ps/kill 不允许您访问 Windows 进程来杀死它们。
使用 cygwin + openssh + windows services 在机器上获取 SSH 用户。
一旦进入 SSH 命令行,您就可以使用标准 Win32 工具来终止进程,例如 -
taskkill /f /im notepad.exe
或为 Win32 添加其他命令行处理工具。
编辑:或者你可以使用
ps -elW
查看所有Windows进程,然后将该PID传递给taskkill。
Get-WindowsCapability -Online | Where-Object {$_.Name -like '*OpenSSH*'}
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Get-WindowsCapability -Online | Where-Object {$_.Name -like '*OpenSSH*'}
Set-Service -Name sshd -StartupType Automatic
Start-Service -Name sshd
ssh [email protected]
adSjs5QAhdsHm*wp4P
cd /
wmic logicaldisk get caption,description
E:/
cd wwwroot\wintext_portal
Git pull origin main