您可以强制“本地”GUI 登录到 Windows 10 上的远程计算机吗?

Posted

技术标签:

【中文标题】您可以强制“本地”GUI 登录到 Windows 10 上的远程计算机吗?【英文标题】:Can you force a "local" GUI login to a remote computer on Windows 10? 【发布时间】:2022-01-06 11:43:37 【问题描述】:

我正在使用 PSExec 登录计算机 A 上的管理特权帐户,以在计算机 B 上运行批处理文件。我正在计算机 B 上以提升的权限成功完成此批处理文件。

我也知道 PSExec 可以使用“-i”开关与桌面交互,当计算机 B 有人登录并坐在桌面上时,它可以正常工作。

我的问题是,Windows 10 或任何相关的 Microsoft 工具包是否让您能够从计算机 A 强制从计算机 B 进行“本地桌面登录”。因此,当从计算机 A 执行命令时,计算机B 现在已登录,坐在桌面上。

(如果你不能这样做,有没有办法知道特定用户是否在活动“gui 桌面会话”活动时登录,即屏幕未锁定)

我想这样做的原因是因为我想停止计算机 B 上的 GUI 应用程序。更新应用程序(触摸文件),然后重新启动应用程序。但显然由于这个应用程序是一个 GUI 应用程序,如果计算机 B 没有使用活动会话登录,我认为这不是完全可取的。

我不想使用任何粗略的第 3 方应用程序/API。我精通 C++/C#/其他编码语言,所以如果这不能通过“批处理”实现但可以用代码完成,那对我来说很好。

我在下面的链接中找到了这个主题,它有点相关,但我没有使用 C#,而且这个线程现在已经 11 岁了,并且使用的是 Windows XP。下面的评论似乎表明这在 2010 年的 XP 上是不可能的。

Get a remote Windows Computer to perform a Login C#,此处的评论:“Windows 中无法内置远程登录到 gui 主 Windows 站,因为这会带来巨大的安全风险。”

两台电脑都是相同版本的 Windows 10 我对两台计算机都有管理访问权限 我可以在计算机之间访问网络

【问题讨论】:

编辑:发现这可以帮助我查看是否有人主动登录到远程 PC,以防无法“强制”本地 PC 远程登录。查询用户 /server:computername 您不能通过组策略或部署工具来实现,而不是您所提议的吗?通过远程脚本强制在另一台机器上登录,否则对我来说听起来有点不安全...... 是的,根据一些简单的研究,这听起来对我来说也不安全。我认为这可能不现实,但认为可能有一些应用程序,所以也许有办法做到这一点。 【参考方案1】:

暂且不说 psexec 和批处理的使用,我不认为你想要的事情不使用外部工具就可以完成,除非你想用 RDP 之类的东西手动完成。

但是,你可以使用powershell来PSRemote到带有Enter-PSSession的机器,然后运行quser来查看是否有人登录。然后,根据情况,你可以运行Get-Process来获取PID有问题的应用程序,Stop-Process 杀死它,以及各种 PowerShell 命令来播放文件。然后,当一切都说完了,运行Start-Process 重新启动应用程序,然后Exit-PSSession 离开。

我强烈建议使用 psexec 和批处理作为最后的手段。

【讨论】:

是的,可能会修改这个(交换启用远程注册表到您的 quser/get-process/stop-process 等):alkanesolutions.co.uk/2021/08/04/…

以上是关于您可以强制“本地”GUI 登录到 Windows 10 上的远程计算机吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何用命令行强制注销windows当前已登录用户

如何优雅的跳过 win10/win11 新系统强制登录微软账号

如何重置Windows 10上的密码列表

开机就显示:Windows 找不到本地配置文件,用临时配置文件让您登录。

有一个 PHP 重定向到登录页面,而不是强制登录

Active Directory 域服务:上次交互式登录