我正在尝试了解如何设置一个批处理文件,用户可以从托管在 Citrix XenApp 上的应用程序运行该文件,以便它从本地计算机启动 .exe,而不是从远程会话打开该应用程序。
我希望找到一个在批处理文件中使用的命令,以便它从用户的本地计算机运行.exe,而不是像远程应用程序那样启动它,并且它必须根据用户的 citrix 会话或执行 .bat 的位置来识别用户的计算机 ID...
以下是 .bat 当前运行的内容:
@echo off
start "" "c:\program files\internet explorer\iexplore.exe" "http://google.com"
因此,在我们公司的软件中,他们只需浏览菜单并选择其中一个选项,即可运行上述批处理文件,然后它会启动类似于远程桌面应用程序的 .exe
我希望它不是从用户连接到的 Citrix 服务器 C: 驱动器启动 IE,而是从用户的本地 C: 驱动器启动 IE。有没有办法将目录重写为用户 C: 驱动器的 UNC 路径?.bat 必须识别计算机名称,所以我想我们可以将主机名的值存储在变量中,然后可能使用该值将目录键入为 unc 路径?我想的是这样的:
@echo off
set computer= hostname
start "" "\\computer\C$\program files\internet explorer\iexplore.exe" "http://google.com"
我希望这是有意义的。我尝试通过在 Citrix 应用服务器之一上保存 .bat 来测试它,然后我从本地计算机的 Explorer 转到该目录并运行它,但是当我运行它时,它说它无法识别路径/不支持 UNC 路径...但它确实显示了我的计算机名称...
答案1
听起来您正在寻找 PSEXEC。 https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
我一直在 BAT 脚本中使用 PSEXEC 来重新启动服务、安装 MSI、更改 IIS 设置等。
使用方法很简单:
psexec \\remotemachine CommandToRun commandarguments
例如,我的常规 psexec 命令之一是:
psexec \\RemoteMachineX c:\windows\system32\inetsrv\appcmd recycle apppool /apppool.name:DefaultAppPool