自学内容网 自学内容网

远程脚本启动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,请按照以下步骤操作:

  1. 打开"设置"应用程序。
  2. 点击"应用",然后选择"可选功能"。
  3. 点击"添加功能",搜索并选择"OpenSSH 服务器"。
  4. 点击"安装"并等待安装完成。

1.2 通过命令行安装SSH Server

要通过命令行安装SSH Server,请以管理员身份打开PowerShell,然后运行以下命令:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  • Add-WindowsCapability是一个PowerShell cmdlet,用于添加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的任务计划功能。以下是具体步骤:

  1. 在远程Windows机器上创建一个计划任务,该任务配置为启动目标GUI程序。
  2. 通过SSH连接到远程机器,使用schtasks命令触发该任务。

2.1 通过图形界面创建计划任务

要通过图形界面创建计划任务,请按照以下步骤操作(以notepad.exe为例):

  1. 打开"任务计划程序"。您可以在开始菜单中搜索"任务计划程序"或通过运行 taskschd.msc 命令来打开它。
  2. 在右侧面板中,选择"创建任务"。
  3. 在"常规"选项卡中,为任务指定一个名称,例如"MY_NOTEPAD"。
  4. 在"触发器"选项卡中,选择"一次",并设置一个过去的时间作为触发时间。这样可以确保任务不会自动运行,而是等待手动触发。
  5. 在"操作"选项卡中,选择"启动程序",然后在"程序/脚本"字段中输入 notepad.exe(或您想要启动的其他GUI程序的路径)。
  6. 点击"确定"保存任务。

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)!