问题来了
搭建服务器过程中,遇到一个问题。windows server 2008R2远程桌面服务器已经搭建好,实现了单用户多终端登陆,但是一个终端内打开浏览器后,其他终端无法使用浏览器,该怎么解决?尝试了360chrome,chrome,腾讯浏览器,火狐浏览器。最终发现,只有坚挺的ie浏览器耐操,可以默默的支持单一用户多终端使用同款浏览器。
看一下例子
让我们看一下Firefox的不支持的例子吧:
第一个终端,正常:
第二个终端出现这个问题:
分析一下
可能是用户数据存储出现了问题。如果进行用户数据再次分配,这个问题就解决了。
解决方法
当远程桌面启动的时候,在新的会话建立后,创建一个用户数据文件夹,用户存储浏览器的数据。这样可以隔离会话数据,保持浏览器实例的独立性。
以chrome谷歌浏览器为例
谷歌浏览器有个参数“–user-data-dir”,如果每次启动,都给它指定个目录,那么问题就解决了。
- 脚本的创建
autochrome.bat
set /a n=%random%
rmdir /s/q C:\ChromeData
start C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --user-data-dir="c:\ChromeData\%n%"
exit
这段脚本的意思是:
- 生成一个随机数叫n
- 无需确认,对C:\ChromeData里的文件进行删除
- 启动谷歌浏览器,并自在ChromeData文件夹里创建一个随机名为n的文件夹
- 退出脚本
每次运行脚本,会删除已退出的会话留下的数据,这样能保证及时释放空间。每个文件夹在11M左右
再次完善一下
start /min "" "C:\Users\Administrator\Desktop\autochrome.bat"
exit
最小化执行,执行完自动退出,这个脚本保存为start.bat
在guacamole的应用
说了这么多,我就是想在guacamole里应用。guacamole的配置如下:
通过网页,链接远程桌面后,自动执行这个start.bat的脚本,这个脚本执行后,会启动Chrome浏览器。最终达到多会话同时上网的目的
最后
这个是曲线救国,没找到合适的方法。这个方法简单,很实用。抛砖引玉吧!