繁体   English   中英

是否可以通过ssh进入Windows(通过cygwin sshd)并在登录的Windows用户桌面上启动程序?

[英]Is it possible to ssh into Windows (through a cygwin sshd) and start a program on a logged in Windows user's desktop?

是否可以通过ssh进入Windows(通过cygwin sshd)并在登录的Windows用户桌面上启动程序?

换句话说,用户ABC登录Windows并且远程用户使用ABC登录/密码通过ssh登录,远程ABC可以在本地ABC用户的桌面上弹出应用吗?

我在Stackoverflow上问这个,而不是Serverfault,因为这样做的动机本质上是程序化的。 远程调用将来自Linux机器,因此虽然可能(?)使用WMI或其他方法来执行此操作,但ssh似乎是最简单的。

很高兴听到更简单/更好的选择。

谢谢!

如果您的cygwin sshd在特权帐户下运行,它可以获取当前桌面的句柄并在其上放置窗口。 请参阅STARTUPINFO for CreateProcess的桌面参数。

我自己的解决方案 在Windows XP上测试(但我认为它应该在任何Windows环境中运行一点点努力)。

您需要使用psexecquser命令。

首先,将psexecquser放在cygwin的PATH环境变量中包含的目录中。 只需将这些文件复制到cygwin下的bin目录中即可。

您可以在%system32%\\ dllcache目录中找到quser.exe 但由于任何原因我无法通过cygwin命令(即ls,cp等)访问它(或访问提到的目录),所以我使用microsoft的copy命令复制到cygwin \\ bin文件夹。

注意 :我认为将套件psutils全部放在cygwin的bin文件夹中会很有帮助。 第一次运行这些实用程序时,必须接受Microsoft警告的许可协议,因此第一次从Windows资源管理器运行psexec。

然后在.bash_profile文件中创建这些别名:

alias winrun='psexec \\\\YOU_USERNAME_HERE -d -i `quser | grep YOU_USERNAME_HERE | grep console | awk "{print \\\$3}"`'
alias explorethis='winrun explorer $(cygpath -w `pwd`)'

请记住,如果需要将其作为命令的参数传递,则需要使用cygpath转换当前目录(“explorethis”就是一个示例)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM