远程脚本启动Windows GUI程序
在测试过程中,我们经常需要与远程Windows机器交互。对于命令行程序,可通过SSH
轻松实现交互。
然而,当需要远程启动GUI应用程序时,直接通过SSH
调用.exe
文件会失败,无法创建正常的应用程序窗口。
本文介绍一种通过SSH
脚本命令远程启动Windows GUI程序的方法。
1. 准备工作:安装SSH Server
Windows 默认安装仅包含 SSH Client
组件,允许连接到其他 SSH
主机。然而,若要让其他客户端通过 SSH
连接到本机,则需安装 SSH Server
组件。
1. 1 通过系统界面安装SSH Server
要通过系统界面安装SSH Server
,请按照以下步骤操作:
- 打开"设置"应用程序。
- 点击"应用",然后选择"可选功能"。
- 点击"添加功能",搜索并选择"OpenSSH 服务器"。
- 点击"安装"并等待安装完成。
1.2 通过命令行安装SSH Server
要通过命令行安装SSH Server,请以管理员身份打开PowerShell,然后运行以下命令:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Add-WindowsCapability
是一个PowerShellcmdlet
,用于添加Windows功能。-Online
参数指定在线下载组件还是本地安装文件。-Name OpenSSH.Server~~~~0.0.1.0
指定要安装的具体功能及其版本。
安装完成后,您需要启动SSH服务并将其设置为自动启动。运行以下命令:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
sshd
是SSH守护进程的名称,它监听来自SSH客户端的连接。Set-Service
是用于修改Windows服务配置的cmdlet
。-Name sshd
指定要修改的服务名称。-StartupType 'Automatic'
将服务设置为在系统启动时自动启动。
执行这些命令后,OpenSSH服务器将被安装、启动,并设置为随系统自动启动,使您的Windows机器能够接受SSH连接。
2. 使用计划任务(schtasks
)启动Windows GUI程序
要通过SSH远程启动Windows GUI程序,我们可以利用Windows的任务计划功能。以下是具体步骤:
- 在远程Windows机器上创建一个计划任务,该任务配置为启动目标GUI程序。
- 通过SSH连接到远程机器,使用
schtasks
命令触发该任务。
2.1 通过图形界面创建计划任务
要通过图形界面创建计划任务,请按照以下步骤操作(以notepad.exe为例):
- 打开"任务计划程序"。您可以在开始菜单中搜索"任务计划程序"或通过运行
taskschd.msc
命令来打开它。 - 在右侧面板中,选择"创建任务"。
- 在"常规"选项卡中,为任务指定一个名称,例如"MY_NOTEPAD"。
- 在"触发器"选项卡中,选择"一次",并设置一个过去的时间作为触发时间。这样可以确保任务不会自动运行,而是等待手动触发。
- 在"操作"选项卡中,选择"启动程序",然后在"程序/脚本"字段中输入
notepad.exe
(或您想要启动的其他GUI程序的路径)。 - 点击"确定"保存任务。
2.2 通过命令行创建计划任务
要通过命令行创建计划任务,您可以使用schtasks
命令。以下是一个示例命令,用于创建一个名为"MY_NOTEPAD"的任务,该任务将启动记事本程序:
schtasks /create /tn "MY_NOTEPAD" /tr "C:\Windows\System32\notepad.exe" /sc once /st 00:00
在这个命令中,/tn
指定任务名称,/tr
指定要运行的程序,/sc once
表示任务只运行一次,/st 00:00
设置一个过去的时间作为开始时间。
2.3 通过命令行查询计划任务
要通过命令行查询计划任务,可以使用以下命令:
schtasks /query /tn "MY_NOTEPAD" /fo LIST /v
这个命令将显示名为"MY_NOTEPAD"的任务的详细信息。其中,/fo LIST
指定输出格式为列表,/v
表示显示详细信息。
2.4 通过命令行运行任务
要通过命令行运行任务,可以使用以下命令:
schtasks /run /tn "MY_NOTEPAD"
这个命令将立即运行名为"MY_NOTEPAD"的任务,从而启动记事本程序。通过这种方式,我们可以远程触发GUI程序的启动,而不会遇到直接通过SSH运行.exe文件时的问题。
2.5 通过命令行删除计划任务
要通过命令行删除计划任务,可以使用以下命令:
schtasks /delete /tn "MY_NOTEPAD" /f
这个命令将删除名为"MY_NOTEPAD"的任务。其中,/f
参数表示强制删除,无需确认。请注意,删除任务后,如果需要再次使用,您需要重新创建该任务。
3. 远程关闭程序
在某些情况下,您可能需要远程关闭已启动的GUI程序。这可以通过使用Windows的taskkill命令来实现。以下是一个示例命令,用于关闭记事本程序:
taskkill /F /IM notepad.exe
在这个命令中,/F
参数表示强制终止进程,/IM
参数指定要终止的进程的映像名称。您可以根据需要替换notepad.exe
为其他程序的进程名。
原文地址:https://blog.csdn.net/weixin_48473666/article/details/142494078
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!