AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 869052
Accepted
Gregory MOUSSAT
Gregory MOUSSAT
Asked: 2017-08-17 17:14:03 +0800 CST2017-08-17 17:14:03 +0800 CST 2017-08-17 17:14:03 +0800 CST

Windows 启动时打开非控制台会话

  • 772

我知道如何在 Windows 主机启动时自动打开控制台会话(推荐的方法是使用加密密码:https ://docs.microsoft.com/en-us/sysinternals/downloads/autologon )。
当服务器运行需要运行 GUI 的编写不当的程序时,这很有用,而它应该作为服务运行,或者至少在后台运行。

会话打开后,可以锁定屏幕并且程序继续工作。管理员甚至可以使用另一个会话进行 RDP(这也锁定了控制台会话)。到目前为止,我没有看到任何例外。

这种方法会导致几个问题。一些最大的:

  • 一个会话在控制台上是敞开的。服务器前面的任何人都可以完全访问此会话,否则任何击中未受监控的键盘/鼠标的东西都可能导致灾难。我们可以通过短暂的屏幕超时来缓解这种情况
  • 以这种方式只能打开一个会话。因此,当我们需要它用于 2 个不同的非同居项目时,我们就完蛋了

 

我想在服务器启动时自动打开几个非控制台会话。好像打开了几个远程桌面会话然后断开连接。然后,被指控的程序可以在单独的会话中使用 GUI 运行。
--> 知道如何实现吗?

windows
  • 2 2 个回答
  • 243 Views

2 个回答

  • Voted
  1. Best Answer
    Bernad MAVISSU
    2017-08-23T16:46:38+08:002017-08-23T16:46:38+08:00

    mstsc.exe可以在没有 GUI 的情况下运行,这通常是无用的,但在这种情况下非常有用。
    您可以创建在计算机启动时触发的计划任务。
    此任务将启动尽可能多的远程桌面会话,然后终止它们,使会话保持活动状态并断开连接。

    我个人使用计划任务调用的批处理(.cmd):

    start c:\windows\system32\mstsc.exe "c:\path\do_it.rdp"
    timeout /nobreak /t 60
    taskkill /f /im mstsc.exe
    

    我有一个更复杂的方法来杀死 mstsc.exe 这是特定于我的需要,所以我只是为示例放置了一个基本的 taskkill。

    • 2
  2. Marco
    2017-08-21T08:20:50+08:002017-08-21T08:20:50+08:00

    要准确实现您的要求,您至少需要一个带有 GUI 的 Linux 或 Windows Server 来放置脚本。

    在 linux/bash 中,我编写了一个ping 监视脚本,该脚本在可能是服务器重启后运行命令(ping 一段时间)。该命令将是一个脚本,在后台运行两次 rdp 客户端,具有预先接受的证书和有效的存储凭据(每个连接一个)到您问题的服务器对象。然后我会用一个结束脚本

    sleep 60 && killall -9 rdpclientname
    

    (因为杀死 rdp 客户端不会终止远程会话,这是您想要实现的一部分)。

    如果您可能想使用 Windows 作为客户端,我相信您可以轻松地在Windows 批处理而不是 bash 中执行此操作。只是我不确定您是否可以建立从同一个 Windows 客户端到同一个 Windows 服务器的多个连接。我认为,至少您必须使用两个不同的用户运行脚本两次。如果不能,则必须将此类脚本放在两台不同的 Windows 客户端机器上。

    如果您选择使用 Windows 客户端,则由 ping 监控脚本激活的第二个脚本调用的二进制文件将是 mstsc.exe,并且将具有 rdp-for-your-server-saved-session.rdp 的完整路径,包含预先接受的证书和有效凭据。

    在 Windows 客户端上,您可以使用 srv2any 来运行 mstsc,而脚本只会启动和停止这两个服务。在 win 上,您将使用任务调度程序,在 Linux 中,crontab。

    为了让它按您的意愿工作,您必须在 Windows 服务器上禁用自动登录。然后,您可以在此之后实现延迟的本地登录。

    这个解决方案当然有一定比例的故障,其中 ping 监控脚本观察到的停机时间不是由于服务器重新启动造成的。但是在这种情况下,两个自动不需要的登录不会造成太大的伤害。

    您必须努力工作和测试才能实现这一目标。这就是为什么以下...... 在建立这样的安排之前,我会尝试任何其他可能的事情!


    无论如何,正如我在对您的问题的评论中所建议的那样,我会尝试通过服务器上的 srv2any 启动编码错误的程序。你没有在你的问题中提到这个尝试。你试过了吗?

    • 1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve