在用户登录之前,批处理文件不会在 Azure VM 启动上运行

Rov*_*irk 5 windows batch-file startup virtual-machine azure

问题: 有谁知道为什么在用户通过远程桌面连接之前批处理文件不会在计算机启动时运行?另外,有没有一种方法可以在计算机启动时执行批处理文件,而不需要任何用户交互?

背景: 我有一个托管在 Microsoft Azure 中的虚拟机。我打开了一个远程桌面会话,创建了一个启动游戏服务器的简单批处理文件(即 gameserver.exe),创建了该批处理文件的快捷方式,并将快捷方式添加到 AppData/Windows/开始菜单/程序/启动。

现在,当我从 Azure 管理控制台重新启动 VM 时。无论我等多久,我都没有看到游戏服务器启动。

但是,当我在连接远程桌面会话后立即远程进入虚拟机时,我会看到批处理文件打开并开始运行,从而启动我的游戏服务器。

我可以创建 gameserver.exe 的快捷方式并将其放入启动文件夹中,一旦虚拟机重新启动,该快捷方式就会按照我的预期运行。但是,我需要做一些不同的事情,以便在启动服务器之前配置服务器,因此我想使用批处理文件来完成此任务。

use*_*867 1

我知道让某些东西在服务器上运行的唯一方法是使用计算机配置的组策略在启动时自动运行某些东西。下一步将是注册表中的 AutoRun 键 (RunOnce),它在用户登录时执行某些操作。下一步将是PsExec,它可以定位远程计算机并运行您选择的可执行文件或脚本。

此外,您还可以将虚拟机配置为自动登录用户,然后锁定虚拟机。这样,注册表中的 RunOnce 就可以运行,甚至可以将应用程序快捷方式放入启动文件夹中。在此处查看有关自动登录和锁定的更多信息。