![静默运行批处理文件,在远程桌面登录时执行](https://linux22.com/image/506306/%E9%9D%99%E9%BB%98%E8%BF%90%E8%A1%8C%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%EF%BC%8C%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E7%99%BB%E5%BD%95%E6%97%B6%E6%89%A7%E8%A1%8C.png)
在我们的办公室,我们使用的是 Linux 瘦客户端机器,除了缺少 IE 之外,它们运行得很好,这很麻烦,因为我们打交道的公司太愚蠢了,不愿意更新他们的网络应用程序(请不要争论)。
为了解决这个问题,我们在计算机房里有一台机器,用户可以通过远程桌面访问 Internet Explorer,这是通过运行一个批处理脚本来实现的,该脚本打开 IE,当 IE 关闭时将其注销,这种设置对我们来说很有效。
即使我已经@echo off
并且 cmd 窗口没有显示任何内容,我真的希望该批处理文件能够静默执行,因此 cmd 窗口根本不会出现。
这可能吗?
Ubuntu 终端服务器客户端有一个在登录时启动文件/应用程序的选项,是否有一个命令可以用来静默运行此批处理。
我已经尝试过这些:
C:\my_batch.bat /NOCONSOLE
C:\my_batch.bat /NOWINDOW
C:\my_batch.bat /B
C:\my_batch.bat /Q
...没有成功,也许是我做事的方式不对?
干杯 :-)
编辑
远程桌面平台是一台 Windows XP 机器,没有什么特别的,但不是 Windows Server 设置。
答案1
也许尝试
start /b my_batch.bat
/b 参数用于
Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application
答案2
为什么不创建一个组策略来强制用户 shell 为 Internet Explorer,而不是使用批处理文件呢?这应该可以实现您想要的行为,而无需任何脚本。
用户配置 -> 管理模板 -> 系统 -> 自定义用户界面
另一种方法是创建一个 vbscript,并通过 Windows 脚本宿主而不是批处理文件使用它。使用 wscript 启动的脚本不会产生新窗口。您的批处理文件在做什么?只需将其转换为 WSH 就足够了。
答案3
如果您不介意在任何用户登录时(即通过终端服务或本地)执行批处理文件,那么:
- 将您的 .cmd 文件保存到所有用户都具有只读访问权限的位置。(例如 %WINDIR%)
- 从命令提示符启动 gpedit.msc
- 导航至用户 > 安全 > 脚本 > 登录
- 添加新脚本,并将其指向您保存 .cmd 文件的位置
该脚本应该静默运行,而不显示命令提示符窗口。
如果您不希望它在用户本地登录时运行,则可能可以在批处理文件中检测到这一点并静默中止该脚本。
答案4
远程桌面应用程序实际上正在使用所述批处理文件作为备用 shell,并且我认为不能使用此方法传递参数。
因此我将不得不忍受我的控制台窗口。