Here's a question... how in the heck do you get a Windows Terminal Services bookmark to fallback to the Java client? The gotcha being that the bookmark is created by the user...
The way I currnetly have the devices setup, users log into their SSL VPN portal, click on a terminal services link (created from their portal account), and connect to their corporate desktop. If they are on Linux/Mac, this doesn't work because it does not fallback to Java. I can make the fallback work if I create the bookmark under a terminal services profile, but I don't want to do that because then the whole role is going to see their desktop link. I only want each user to see only their desktop via the bookmark... and I don't want them to have to type in IPs... and I want the fallback to work.
Ideas?
I think you need to create a separate role per user in this case... not exactly elegant and quite unmanageable if you have more than, say, 10 users...
Looks like I've fixed it
I've created a TS Resource profile that connects to PC-<USERNAME>.domain.tld, assuming that your hostnames include the username this should work. I've forced Java RDP app usage to test this, and it starts Java and connects to the PC-USERNAME.domain.tld.
Now, for me it ends here as I haven't set up ProperJava yet, so it starts whining about classes it can't find etc.
I've attached the XML, removed the ProperJava applet-HTML though.
Good luck!
Good call... unfortuantely for me my LAN guys name the workstations with serial-number-like names. I suppose I could maintain an associative array in JavaScript to do a username-to-workstation-id match... I don't require fallback on ALL users, and the roles I created are per department, so this resource-profile could be created for that specific department(s) that needs that fall-back mechanism in place... I just don't understand why they don't make all the shortcuts available for fall-back... as awesome as this device is, there are several "features" that astound as to why they are not available.
-Ryan
Maybe you placed the workstation name somewhere in the AD user profile? As an LDAP attribute, I mean.
In that case you can retrieve the attribute and apply it to the Java HTML:
The following variables can be used in your HTML. They are replaced based on bookmark values.
<<HOST>>
...
In addition to these values, system variables can be used in the HTML. For example, <<userAttr.myServer>> can be used if you have myServer configured as an AD or LDAP attribute.
I really don't know if this will work, if it does: could you post the results back?
Thanks!
I'll research that and see if I can get something like that to work.
In the meantime, the following seems to work (at least in FireFox).
<script type="text/javascript">
function getResolution() {
var heights = new Array('480','600','624','640','720','768','800','864','900','960','1024','1050','1080','1152','1200','1280','1392','1400');
var w = screen.width;
var h = screen.height;
var yourRes = w + 'x' + h;
var hIndex = heights.indexOf('' + h + '');
if (hIndex < 0) {
alert('Your resolution is ' + yourRes + ', however the VPN is not setup for it. Please contact support with this information and they will add it. You can continue using the default resolution if you wish.');
} else {
var dSize = 0;
var heightArrayIndex = heights.indexOf('' + h + '');
var nextArrayIndex = heightArrayIndex - 1;
while (dSize < 80) {
var heightSize = heights[heightArrayIndex];
var newSize = heights[nextArrayIndex];
dSize = heightSize - newSize;
nextArrayIndex--;
}
document.write('<param name="geometry" value="' + w + 'x' + newSize + '">');
}
}
function getServer(x) {
var hostNames = new Array();
hostNames['userNameA'] = '192.168.1.1';
hostNames['userNameB'] = '192.168.1.2';
hostNames['userNameC'] = '192.168.1.3';
document.write('<param name="Server" value="' + hostNames[x] + '">');
}
</script>
<applet code="com.elusiva.rdp.applet.RdpApplet.class"
codebase="<< CODEBASE >>"
archive="JavaRDP14-1.1.jar"
width="640"
height="480"
name="ElusivaRDP"
align="top">
<param name="code" value="com.elusiva.rdp.applet.RdpApplet.class">
<param name="codebase" value="<< CODEBASE >>">
<param name="archive" value="JavaRDP14-1.1.jar">
<param name="cabbase" value="">
<param name="name" value="ElusivaRDP">
<param name="username" value="<<USER>>">
<script type="text/javascript">getServer('<<USER>>');</script>
<param name="Port" value="<<PORT>>">
<script type="text/javascript">getResolution();</script>
</applet>