IT

windows openssh server运行GUI程序

我一开始用ssh运行的时候其实完全没想通为什么没有界面,直到我想起来ssh是服务来运行的时候我才意识到发生了什么,服务是没法运行GUI的,但是虽然不能直接运行GUI,那就运行别的来当一次跳板就行了,比如windows自带的计划任务,我不希望用一些什么其他的程序来增加我迁移服务器的难度。

直接上正文,计划任务可以运行GUI,而计划任务可以用命令行创建,那么就简单了,下面的命令就是”创建计划任务+运行程序+删除计划任务”一条龙,因为我发现不同的ssh客户端在连接windows的ssh时好像会用不同的终端配置,所以我直接把命令写成了只用powershell

CMD or Powershell
powershell "schtasks /Create /F /tn "temp" /tr "C:\Windows\System32\cmd.exe" /sc once /st 00:00:00 | schtasks /run /tn "temp" ; schtasks /delete /F /tn "temp""

在使用ssh的客户端中运行这3条命令就会看到RDP里有GUI界面的cmd成功出现了,只需要把create里/tr后面的cmd替换成需要运行的程序或者是脚本,我把cmd的完整路径写出来是为了更好的理解,我就写个cmd.exe我相信肯定会有人学过去就是qq.exe,这个计划任务不会自动运行,因为今天的00:00:00无论如何都已经过去了,这个命令创建的是只在今天0点运行一次的计划任务。

另外最好不要把这些命令拆成多行,因为我认为这样做条件判断是比较合理的。

如果需要一直使用可以不去运行后面那个schtasks /delete删除命令,以后就schtasks /run一下就好了。

也可以快速运行一串命令比如像这样快速执行2条命令

BAT (Batchfile)
echo start cmd > %UserProfile%\tempg.bat
echo ping 1.1.1.1 >> %UserProfile%\tempg.bat
powershell "schtasks /Create /F /tn "temp" /tr "%UserProfile%/tempg.bat" /sc once /st 00:00:00 | schtasks /run /tn "temp" ; schtasks /delete /F /tn "temp"" & timeout -t 1 & del %UserProfile%\tempg.bat

你问我为啥需要GUI却不用GUI来操作呢,因为这样可以在客户端上有更多的可操作性,比如在服务器上放个重启脚本,手机上的ssh弄好预编辑命令,需要的时候点一下,快速重启某些出问题而且需要用到GUI的程序,就不需要用到rdp了,等方便用rdp的时候再去检查到底是什么问题。

还可以整蛊人,比如别人在用我电脑,然后我手机上点一下,原神启动!我的电脑在自己启动原神.jpg

分类: IT
文章已创建 33

发表评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读