使用批处理文件在远程计算机上运行可执行文件

使用批处理文件在远程计算机上运行可执行文件

我正在尝试了解如何设置一个批处理文件,用户可以从托管在 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

相关内容