Windows - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式
Windows(奇思妙想) - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式
前言
Windows启用OpenSSH客户端后就可以通过SSH的方式访问Windows了。但是通过SSH启动的程序:
- 无法显示图形界面
- 会随着SSH进程的结束而结束
于是想到了一种通过执行“计划任务”的方式脱离SSH以本机的名义执行不随SSH进程结束而结束的带图形界面的应用程序的方式。
Windows开启SSH
这个教程一搜一大把,这里仅仅列举主要内容以及容易踩坑的地方。
如何开启并连接:
- 在
Windows设置–>应用–>应用和功能-可选功能安装OpenSSH客户端(过程可能十分缓慢,魔法也难以加速)。 - 启动
OpenSSH SSH Server(sshd)服务。(可在services.msc通过鼠标启动,也通过命令行net start sshd启动)。 - 保证局域网或公网可访问目标主机,在另一台机器上执行
ssh 用户名@ip地址并输入密码即可。
踩坑:
- 如果你是正版Windows并登录了微软账号,有可能你输入系统用户名和开机密码无法访问,但是输入你的微软账户邮箱和密码可以正常登录控制。
直接通过SSH启动其他程序效果不尽人意
有了终端,似乎一切都可以执行了。但是当我想执行带“图形界面”的爱心.exe时,若执行start 爱心.exe,则目标主机和你的主机上都没有任何踪迹,但是可以在任务管理器中看到。

可以发现爱心.exe在后台执行了,但是不会显示界面。这时候如果断开ssh进程连接,则后台的爱心.exe也会随之消失。
大概是因为:
在Windows系统中通过SSH启动GUI程序时无法显示界面,通常是因为SSH会话与图形界面会话隔离导致的。SSH连接默认运行在非交互式控制台会话(通常为Session0),而图形界面程序需要运行在用户的交互式桌面会话(如Session1)(未验证)
通过任务计划启动UI程序
也就是说,如果能让Windows以为是它自己启动的一个程序,而不是SSH调用执行的一个后台程序,就可以正常执行显示界面并且不受SSH进程的约束了。
Windows自己启动一个程序?任务计划不就是干这个的么?
理论上,我创建一个到时间自动运行
爱心.exe的任务计划,Windows到时间自己运行这个程序,那不就脱离我的ssh进程并且能正常显示界面了吗?甚至,我直接通过SSH调用命令“立即执行这个计划任务”,是不是就达到了我想要的效果?
于是思路就变成了创建执行爱心.exe的任务计划 -> 立即执行任务 -> 删除任务计划。
schtasks /create /tn "tempStartAiXin" /sc ONCE /tr "cmd /c start 爱心.exe" /ru %USERNAME% /st 00:00
schtasks /run /tn "tempStartAiXin"
schtasks /delete /tn "tempStartAiXin" /f
完美!爱心.exe在目标主机上成功运行,且不随我ssh会话的结束而终结。
End
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
相关文章:
Windows - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式
Windows(奇思妙想) - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式 前言 Windows启用OpenSSH客户端后就可以通过SSH的方式访问Windows了。但是通过SSH启动的程序: 无法显示图形界面会随着SSH进程的结束而结束 于是想到了一种通过执行“计划…...
Android ViewStub延迟初始化加载布局View,Kotlin
Android ViewStub延迟初始化加载布局View,Kotlin activity_my.xml: <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_…...
Web自动化之Selenium下Chrome与Edge的Webdriver常用Options参数
目录 引言 说明 Add_argument() 添加方式 常用参数 Add_experimental_option() 添加方式 常用方法 任务结束后仍然保持浏览器打开 禁用“Chrome 正受到自动测试软件的控制”提示 设置下载路径 禁用弹窗拦截 禁用图片加载 禁用 JavaScript 注意 引言 …...
数据安全_笔记系列05:数据合规与隐私保护(GDPR、CCPA、中国《数据安全法》)深度解析
数据安全_笔记系列05:数据合规与隐私保护(GDPR、CCPA、中国《数据安全法》)深度解析 在全球数据跨境流动和隐私保护强监管的背景下,企业需同时满足多法域合规要求。以下从 法规要点、核心差异、实施策略、跨境传输、典型案例 等维…...
AF3 DataPipeline类process_multiseq_fasta 方法解读
AlphaFold3 data_pipeline 模块DataPipeline类的 process_multiseq_fasta 方法用于处理多序列 FASTA 文件,生成 AlphaFold3 结构预测所需的特征,适用于多链复合物的预测。它结合了 Minkyung Baek 在 Twitter 上提出的“AlphaFold-Gap”策略,即通过在多链 MSA 中插入固定长度…...
中国的Cursor! 字节跳动推出Trae,开放Windows版(附资源),开发自己的网站,内置 GPT-4o 强大Al模型!
Trae是什么 Trae 是字节跳动推出的免费 AI IDE,通过 AI 技术提升开发效率。支持中文,集成了 Claude 3.5 和 GPT-4 等主流 AI 模型,完全免费使用。Trae 的主要功能包括 Builder 模式和 Chat 模式,其中 Builder 模式可帮助开发者从…...
图片爬取案例
修改前的代码 但是总显示“失败” 原因是 修改之后的代码 import requests import os from urllib.parse import unquote# 原始URL url https://cn.bing.com/images/search?viewdetailV2&ccidTnImuvQ0&id5AE65CE4BE05EE7A79A73EEFA37578E87AE19421&thidOIP.TnI…...
Go语言中的信号量:原理与实践指南
Go语言中的信号量:原理与实践指南 引言 在并发编程中,控制对共享资源的访问是一个经典问题。Go语言提供了丰富的并发原语(如sync.Mutex),但当我们需要灵活限制并发数量时,信号量(Semaphore&am…...
Qt如何将数据传入labview,Qt又如何从labview中读取数据?
Qt如何将数据传入labview,Qt又如何从labview中读取数据? Qt如何将数据传入labviewQt如何从labview中读取数据 Qt如何将数据传入labview Qt如何从labview中读取数据...
vue3学习2
ts定义接口: 引入的时候要加type: 调用: ts创建自定义type类型,引入的时候也要加type: reactive可以直接传泛型: 加?声明不强制: defineProps接收父组件传递的props,其中defineProp…...
spring中手写注解开发(创建对象篇)
说明: 在spring底层中并不是我写的如此,这篇只是我用我自己的方式实现了使用注解组件扫描并且 创建对象,方法并不是很难,可以看一看,欢迎大佬评论 第一步: 我们需要自己写一个注解,我用的是idea…...
Android OpenGLES2.0开发(十一):渲染YUV
人生如逆旅,我亦是行人 Android OpenGLES开发:EGL环境搭建Android OpenGLES2.0开发(一):艰难的开始Android OpenGLES2.0开发(二):环境搭建Android OpenGLES2.0开发(三&am…...
在linux中利用conda安装blast
在 Linux 中使用 conda 安装 BLAST 非常简单。conda 是一个流行的包管理工具,可以轻松安装和管理生物信息学工具,包括 BLAST。以下是具体步骤: 1. 确保已安装 Conda 如果你还没有安装 conda,可以参考以下步骤安装 Miniconda&…...
三、多项式环
文章目录 一、多项式环的定义二、多项式环的性质1. 多项式加法2. 多项式乘法3. 满足的运算规律4. 次数5. 单位元 三、剩余多项式环(商多项式环)四、有限多项式环五、多项式环的性质与特性1. 子环与理想2. 不可约性和素性3. 有限生成性 一、多项式环的定义…...
python unzip file
要在 Python 中解压文件并显示进度,我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示,我们可以通过手动计算并使用 tqdm 库来显示进度条。 安装 tqdm 首先,确保你已经安装了 tqdm 库,用于显示…...
MySQL-增删改查
一、Create(创建) 📖 语法: INSERT INTO table_name(value_list); 当我们使用表的时候,就可以使用这个语法来向表中插入元素~ 我们这边创建一个用于示范的表(Student)~ create table student( id int, name varchar(20), chinese int, math…...
LeetCode 热题100 15. 三数之和
LeetCode 热题100 | 15. 三数之和 大家好,今天我们来解决一道经典的算法题——三数之和。这道题在 LeetCode 上被标记为中等难度,要求我们从一个整数数组中找到所有不重复的三元组,使得三元组的和为 0。下面我将详细讲解解题思路,…...
网络空间安全(1)web应用程序的发展历程
前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷,从简单的文档共享系统到如今复杂、交互式、数据驱动的平台,经历了多个重要阶段。 一、起源与初期发展(1989-1995年) Web的诞生: 1989年,欧洲…...
ABAQUS功能梯度材料FGM模型
功能梯度材料(FGM)作为一种新型复合材料,通过材料内部成分或微观结构的梯度变化,优化特定性能适应复杂环境,被广泛应用于高温防护、结构优化、生物医学、光电设备等领域。本案例介绍在ABAQUS内建立功能梯度材料模型。 …...
自适应增强技术
1. 传统图像处理中的自适应增强(如CLAHE) 难度:⭐容易 实现方式:调用成熟的库(如OpenCV)函数即可完成。 示例代码(CLAHE增强): <PYTHON> import cv2# 输入灰度或彩…...
大模型---ReAct
目录 1.ReAct的定义 2.ReAct的基本形式 3.ReAct与普通CoT、Toolformer的区别 4.ReAct与Plan-and-Solve 5.ReAct的局限 深入学习会继续补充~ 1.ReAct的定义 ReAct是Agent编排(Orchestration)的逻辑循环(Reasoning Loop)中最经典的实现方式,编排是Agent的“神经…...
Phi-4-mini-reasoning惊艳效果展示:高精度数学推导+代码生成对比实测
Phi-4-mini-reasoning惊艳效果展示:高精度数学推导代码生成对比实测 1. 开篇:小模型的大智慧 Phi-4-mini-reasoning这款仅有3.8B参数的轻量级开源模型,正在重新定义我们对小型语言模型能力的认知。专为数学推理、逻辑推导和多步解题等强逻辑…...
Windows本地AI新玩法:Docker Compose一键部署Ollama与Open WebUI,小白也能玩转私有大模型
1. 为什么要在Windows上部署本地大模型? 最近两年AI技术发展迅猛,各种大语言模型层出不穷。但很多朋友可能都有这样的困扰:每次想用AI都得联网,还得担心隐私问题。其实现在完全可以在自己的Windows电脑上搭建一个私有大模型&#…...
【Excel 公式学习】告别“”时代:TEXTJOIN 函数的万能用法
在 Excel 的世界里,合并文本曾是一件让人头疼的“体力活”。如果你还在用 & 符号点到手软,或者为了去掉多余的逗号而写复杂的 IF 嵌套,那么今天的主角——TEXTJOIN,将彻底改变你的工作流。一、 为什么要弃用旧方法?…...
Keil环境下ST-LINK调试实战指南与常见问题解析
1. ST-LINK调试环境搭建 第一次用ST-LINK调试STM32时,我花了整整一个下午才搞定环境配置。现在回想起来,其实只要注意几个关键点就能避免很多坑。先说说硬件连接,ST-LINK和开发板的接线看似简单,但接错线的情况太常见了。VCC、GND…...
【内存泄漏排查记】Qt子窗口未析构导致内存激增与程序崩溃
1. 内存泄漏现象初现 那天我正在调试一个多通道数据显示的Qt程序,主界面负责配置参数,双击任意通道会弹出子窗口展示详细的时域频域图。测试阶段发现一个诡异现象:程序运行时间越长就越卡,最终直接崩溃。刚开始以为是GPU问题&…...
CasRel模型镜像免配置亮点:预置中文分词器+标点标准化模块
CasRel模型镜像免配置亮点:预置中文分词器标点标准化模块 你是不是也遇到过这种情况?好不容易找到一个强大的关系抽取模型,比如CasRel,兴致勃勃地部署好,准备从中文文本里提取“谁-做了什么-对谁”这样的关键信息。结…...
大数据分布式集群搭建与运维基础
前言在数字化高速发展的今天,大数据已经成为企业核心竞争力的重要组成部分。大数据分布式集群作为存储与计算海量数据的基础平台,其搭建、配置、管理与稳定运行,是大数据运维工作的重中之重。对于初学者而言,环境搭建复杂、网络异…...
Mediapipe与Unity3D实时手部动作捕捉与驱动全流程解析
1. 从摄像头到虚拟手:Mediapipe基础配置 Mediapipe作为谷歌开源的跨平台多媒体机器学习框架,最让我惊艳的就是它的手部关键点检测能力。记得第一次跑通demo时,看着屏幕上实时追踪的21个手部关节点,那种"未来已来"的震撼…...
破局起点:35岁危机的本质解构
在软件测试领域,35岁危机并非年龄的诅咒,而是能力模型与行业需求的结构性错位。当自动化工具覆盖80%基础用例、AI生成脚本效率超越人工时,危机核心显现为三重矛盾:技术断层危机:手工测试经验与云原生/AI测试需求脱节&a…...
