我有几个用户使用远程桌面应用程序(Server 2008),当他们打开我创建的 .BAT 文件时,它会打开两个程序...但是,我需要防止同一个程序(在本例中是 Outlook)多次打开...
我在我的.BAT文件中创建了此行...
tasklist /nh /fi "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)
它运行正常...除了,我有多个用户登录到这个“终端服务器”并运行同一个 .BAT 文件...所以当“用户 2”登录时,他们没有启动 Outlook,因为它已经显示在“用户 1”下的任务管理器中正在运行...
我需要能够区分"imagename" and "username"
……好吧,“用户名”将是%USERPROFILE%
答案1
如何防止“同一用户”使用命令提示符在终端服务器上打开相同的程序?
我有多个用户登录到此“终端服务器”并运行相同的 .BAT 文件...因此,当“用户 2”登录时,他们无法启动 Outlook,因为它已在任务管理器中的“用户 1”下显示为正在运行
尝试下面的逻辑,因为它将使用%Username%
环境变量来获取TASKLIST
运行该命令的用户帐户配置文件的用户名的当前条目。。。
任务列表命令仅供运行它的用户获取进程
TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe"
使用示例逻辑
TASKLIST /NH /FI "USERNAME eq %Username%" /FI "imagename eq outlook.exe" | find /i "Outlook.exe" > nul ||(start /min Outlook.exe)