通过远程桌面登录 Windows Vista 时阻止运行某些启动程序

通过远程桌面登录 Windows Vista 时阻止运行某些启动程序

当我通过远程桌面登录到 Windows Vista 桌面时,是否可以阻止某些启动程序运行。

我希望有一个类似“Capster”的解决方案,当将其添加到启动快捷方式时,如果 CapsLock 处于打开状态,则只会运行其参数中的可执行文件。虽然我想真正检测我是否通过远程桌面登录,而不是寻找按键状态。

我想在启动时禁用的应用程序是我的 IM 客户端,在本例中是 Digsby、Windows Sidebar、Samurize 和 UltraMon,用于与多台显示器配合使用。

答案1

当然可以。创建一个批处理文件,其中包含启动“仅控制台”程序的命令。在该文件的顶部,检查名为 SESSIONNAME 的变量。如果它等于“控制台”,则运行这些程序。如果不是,则不要运行。

像这样:

@echo off

IF %SESSIONNAME% == Console (

echo In console, executing programs.
REM List paths to programs here prefaced by "start " so they run async.

GOTO :END
) ELSE (
REM Not in console, not executing programs.
)

:END

答案2

替代解决方案(仅当您熟悉命令提示符 CLI 时)优点:更少的 FS 块使用,尤其是在嵌入式/狭小空间中。

如果您的操作系统仅支持硬链接文件(XP/NT5 或更早版本),那么其限制也应适用(exe 及其链接可能不在不同的卷/驱动器上,等等)

  1. 打开 priv/elevated/as admin 命令提示符。

  2. 创建指向原始 filename.exe 的符号/硬链接(使用 fsutil 或第三方 ln 工具):scpath\Console_filename.exe

  3. 如果您从 RDP 会话执行此操作,则需要通过在同一文件夹 (scpath) 中创建名为 %SessionName%_filename.exe 的 tmp/dummy/blank/link 来解决资源管理器 LNK/prop 编辑器的问题。注意:如果未定义,cmd 将使用 %SessionName% 作为文字字符串。

  4. 从同一终端运行 explorer.exe,编辑快捷方式/PIF/LNK,并将目标从“progpath\filename.exe”更改为“scpath\%SessionName%_filename.exe”。scpath 可以与 filename.exe 路径不同或相同。

  5. 删除 %SessionName%_filename.exe(如果您已执行步骤#3)并退出终端。

符号链接更加灵活,因为快捷方式可以指向相对路径,并且不需要与 progpath 位于同一卷/驱动器中。

顺便说一句。在 C: 下安装没有驱动器号的分区/卷将无法克服硬链接(必须在同一个 NTFS 中)的限制。

相关内容