我有一个需要 CLIENTNAME 环境变量的脚本,它在终端服务器上运行。我有一个用于测试的批处理文件,其中包含: 设置 CLIENTNAME;暂停
如果我以管理员身份使用 RDP: 如果我打开命令提示符并运行脚本,它会显示客户端名称。如果我双击脚本,CLIENTNAME 变量不存在。
如果我从 igel/wyse 终端登录: 如果我双击同一个脚本,它会显示客户端名称。
其他详细信息:2008R2,Xenapp 6.5,作为域管理员进行测试。
环境变量 CLIENTNAME 发生了什么?如果我通过 RDP 连接到服务器,双击批处理文件时它不存在,但如果命令提示符已打开,它却存在?所有其他环境变量似乎都在那里。
答案1
症状使用远程桌面连接进行远程连接时,环境变量
CLIENTNAME
和SESSIONNAME
会被添加到启动的每个进程中。如果您设置文件夹选项“在单独的进程中启动文件夹窗口”,然后从附加的资源管理器窗口启动应用程序,则该应用程序将看不到这些附加的环境变量。
原因附加的 Explorer 窗口不是父 Explorer.exe 进程的子窗口,而是从系统进程启动的。因此,它不会从 Explorer 主窗口继承环境。
解决 如果您的应用程序依赖于这些变量,请删除文件夹选项“在单独的进程中启动文件夹窗口”。