微软提供了一个远程访问“同一个域内机器上安装的桌面应用”的方案,他们把这套方案称之为"Remote desktop service",即提供一个“共享给web用户的远程桌面服务”,这个服务为企业所谓的"Cloud services"提供某部分的技术支持,这也是我在最近项目中所参与的一小部分工作,为一个针对中小型企业的ERP写一个公用的web portal,所有的企业客户通过这个web portal登录,通过某些校验后,从服务端加载到远程桌面应用的配置命令,从而获得访问远程桌面应用的入口。

针对这个需求,写了一个小的sample,本文将针对这个sample做一个描述,它是仿照微软的Remote desktop web access写的。

【软件环境】

OS:win7

IDE:vs2010

Browser:IE8

既然是微软最近的方案,操作系统与浏览器必然有要求,操作系统至少是XP SP2或Server 2003 SP1,浏览器至少是IE6或者更高版本,你懂的。sample运行后,使用不对的操作系统版本或浏览器版本,会有JS弹出框提示。

【原理说明】

访问是基于ActiveX插件,内部实现被封装了,看不到源码。用起来比较简单,代码也没有什么含金量的东西,只是,如果用法不对,就达不到目的,由于没有拿到微软的代码,这个sample是通过Reflector和FF的firebug插件,边看边找,模仿着写出来的,这纠结的过程就不说了,去掉许多无关的一些东西,整理如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestRemoteApp.aspx.cs" Inherits="TestRemoteApp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Remote Desktop Services</title>
<link rel="stylesheet" href="Styles/Common.css" />
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
function goRDP(fileContents) {
var MsRdpClientShell, MsRdpClient;
var ax = document.getElementById("MsRdpClient");
var ax1 = document.getElementById('MsRdpClient1');
var WebAccessControlPresent = WebPartManager1_TSPortalWebPart1IsWebAccessControlPresent();
if (WebAccessControlPresent) {
//MsRdpClientShell = new ActiveXObject("MsRdpWebAccess.MsRdpClientShell");
MsRdpClientShell = ax;
MsRdpClient = ax;
}
else {
MsRdpClientShell = ax1.MsRdpClientShell;
MsRdpClient = ax1;
}
if (!MsRdpClient || (MsRdpClient.readyState != 4) || MsRdpClientShell == null) {
WebPartManager1_TSPortalWebPart1OnControlLoadError(MsRdpClient, MsRdpClientShell);
}
if (MsRdpClientShell != null) {
MsRdpClientShell.PublicMode = true;
MsRdpClientShell.RdpFileContents = unescape(fileContents);
try {
MsRdpClientShell.Launch();
}
catch (e) {
throw e;
}
}
}
function WebPartManager1_TSPortalWebPart1OnControlLoadError(MsRdpClient, MsRdpClientShell) {
var clientVer = WebPartManager1_TSPortalWebPart1Is61Client();
var bValid = true;
// IE
if (window.navigator.userAgent.indexOf("Windows NT") != -1) {
var WebPartManager1_TSPortalWebPart1osVersion = 0;
var temp = window.navigator.userAgent.split("Windows NT");
WebPartManager1_TSPortalWebPart1osVersion = parseFloat(temp[1]);
if (WebPartManager1_TSPortalWebPart1osVersion < 5.1) {
bValid = false;
alert('RD Web Access does not support this operating system. To see a list of supported operating systems, click http://go.microsoft.com/fwlink/?LinkID=56288.            \n'
+ 'If you are running Windows XP or Windows Server 2003, you can obtain the latest service pack from the http://go.microsoft.com/fwlink/?LinkID=70646.            \n'
+ 'If you upgrade to Windows XP SP2 or Windows Server 2003 SP1, you must also install the Remote Desktop Connection 6.0 client update. You can learn about this update and download the installation package by visiting http://go.microsoft.com/fwlink/?LinkID=56287.            \n');
return;
}
else {
if (window.navigator.userAgent.indexOf("MSIE") != -1) {
temp1 = window.navigator.userAgent.split("MSIE");
var WebPartManager1_TSPortalWebPart1browserVersion = parseFloat(temp1[1]);
if (WebPartManager1_TSPortalWebPart1browserVersion == 0) {
bValid = false;
alert('This Web browser is not supported by RD Web Access. RD Web Access requires Internet Explorer 6.0 or later.            \n You can download the latest version of Internet Explorer from the http://go.microsoft.com/fwlink/?LinkID=70646.  ');
return;
}
else if ((WebPartManager1_TSPortalWebPart1browserVersion < 7.0) && (window.navigator.userAgent.indexOf("SV1") == -1)) {
bValid = false;
alert('You need to obtain the latest service pack for your operating system before you can use RD Web Access. You can obtain the latest service pack from the http://go.microsoft.com/fwlink/?LinkId=70646.            \n'
+ 'If you upgrade to Windows XP SP2 or Windows Server 2003 SP1, you must also install the Remote Desktop Connection 6.0 client update. You can learn about this update and download the installation package by visiting http://go.microsoft.com/fwlink/?LinkId=70646.            \n'
+ 'After you install the package, you must refresh this Web page to see the list of RemoteApp programs. ');
return;
}
if (bValid == true) {
/*if (!document.all.MsRdpClient || (document.all.MsRdpClient.readyState != 4) || MsRdpClientShell == null) {
// load control panel
if (WebPartManager1_TSPortalWebPart1LoadControl() == true) {
// set control panel available
WebPartManager1_TSPortalWebPart1SetDivDisplayControlAvailable();
}
}
else {
// set control panel available
WebPartManager1_TSPortalWebPart1SetDivDisplayControlAvailable();
}*/
if (!MsRdpClient || (MsRdpClient.readyState != 4) || MsRdpClientShell == null)
alert('No!');
else
alert('Ok!');
}
}
else {
alert('This Web browser is not supported by RD Web Access. RD Web Access requires Internet Explorer 6.0 or later.            \n You can download the latest version of Internet Explorer from the http://go.microsoft.com/fwlink/?LinkID=70646.  ');
return;
}
}
if (WebPartManager1_TSPortalWebPart1osVersion < 6.0) {
if (clientVer == 0) {
alert('The Remote Desktop Services ActiveX Client control is not available. Before you can access remote programs and connect to remote desktops through RD Web Access, you must install and enable this ActiveX control.\n If your computer does not have the correct version of the Remote Desktop Services ActiveX Client control, you must download and install an update package. To learn about this update and to download the installation package, visit http://go.microsoft.com/fwlink/?LinkId=56287.\n If you have already installed the correct update package, you must enable the ActiveX control. To do this, follow your browser\"s instructions to manage add-ons and to run ActiveX controls. When you enable the ActiveX control, you may see a security warning. Before you continue, make sure that the publisher for the ActiveX control is Microsoft Corporation.\nAfter you install the package or enable the ActiveX control, you must refresh this Web page.          ');
return;
}
else if (clientVer != 1) {
alert('The Remote Desktop Services ActiveX Client control is not available. Before you can access remote programs and connect to remote desktops through RD Web Access, you must install and enable this ActiveX control.\n If your computer does not have the correct version of the Remote Desktop Services ActiveX Client control, you must download and install an update package. To learn about this update and to download the installation package, visit http://go.microsoft.com/fwlink/?LinkId=56287.\n If you have already installed the correct update package, you must enable the ActiveX control. To do this, follow your browser\"s instructions to manage add-ons and to run ActiveX controls. When you enable the ActiveX control, you may see a security warning. Before you continue, make sure that the publisher for the ActiveX control is Microsoft Corporation.\nAfter you install the package or enable the ActiveX control, you must refresh this Web page.          ');
return;
}
} else {
if (clientVer == 0) {
alert('The Remote Desktop Services ActiveX Client control is not enabled. You must enable this ActiveX control before you can access RemoteApp programs through RD Web Access.            \n'
+ ' To enable the ActiveX control, click the warning message on Internet Explorer Information bar, point to Add-on Disabled, and then click Run ActiveX Control. When you do this, you may see a security warning. Make sure that the publisher for the ActiveX control is Microsoft Corporation before you click Run.            \n'
+ 'If the Internet Explorer Information bar does not appear, you can enable the ActiveX control by using the Manage Add-ons tool on the Tools menu of Internet Explorer. If you are unable to do this, please contact your network administrator.  ');
return;
}
else if (clientVer != 1) {
alert('The Remote Desktop Services ActiveX Client control is not available. You must install this ActiveX control before you can access RemoteApp programs through RD Web Access.            \n'
+ 'The ActiveX control is included with the Remote Desktop Connection 6.0 client update. You can learn about this update and download the installation package by visiting http://go.microsoft.com/fwlink/?LinkId=56287.            \n'
+ 'After you install the package, you must refresh this Web page to see the list of RemoteApp programs. ');
return;
}
}
}
// Not IE
else {
alert('RD Web Access does not support this operating system. To see a list of supported operating systems, click http://go.microsoft.com/fwlink/?LinkID=56288.            \n'
+ 'If you are running Windows XP or Windows Server 2003, you can obtain the latest service pack from the http://go.microsoft.com/fwlink/?LinkID=70646.            \n'
+ 'If you upgrade to Windows XP SP2 or Windows Server 2003 SP1, you must also install the Remote Desktop Connection 6.0 client update. You can learn about this update and download the installation package by visiting http://go.microsoft.com/fwlink/?LinkID=56287.            \n');
return;
}
}
function WebPartManager1_TSPortalWebPart1Is61Client() {
var retval = 0;
var WebAccessControlPresent = WebPartManager1_TSPortalWebPart1IsWebAccessControlPresent();
if (WebAccessControlPresent) {
retval = 1;
return retval;
}
try {
var MsTscAX = new ActiveXObject("MsRDP.MsRDP.5");
if (MsTscAX) {
retval = 2;
var verString = MsTscAX.Version.split(".");
if (verString.length > 2) {
if ((verString[0] > 6) || (verString[0] == 6 && (verString[1] > 0 || verString[2] >= 6001))) {
retval = 1;
}
}
}
}
catch (e) {
retval = 0;
}
return retval;
}
function WebPartManager1_TSPortalWebPart1IsWebAccessControlPresent() {
var retval = false;
try {
var WebAccessControl = new ActiveXObject("MsRdpWebAccess.MsRdpClientShell");
if (WebAccessControl) {
retval = true;
}
}
catch (e) {
retval = false;
}
return retval;
}
function over(ele) {
$(ele).css({ "background": "url(Contents/images/ivmo.png) no-repeat top center" });
$(ele).css({ "padding": "0 3px 0 2px" });
}
function out(ele) {
$(ele).css({ "background": "" });
$(ele).css({ "padding": "0 1px 0px 4px" });
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h2>Test pager for remote desktop services</h2>
<div id="main-panel">
<div class='floating-div'><div class='bak' οnmοuseοver='over(this)' οnmοuseοut='out(this)' οnclick='goRDP("redirectclipboard%3Ai%3A1%0D%0Aredirectposdevices%3Ai%3A0%0D%0Aredirectprinters%3Ai%3A1%0D%0Aredirectcomports%3Ai%3A1%0D%0Aredirectsmartcards%3Ai%3A1%0D%0Adevicestoredirect%3As%3A*%0D%0Adrivestoredirect%3As%3A*%0D%0Aredirectdrives%3Ai%3A1%0D%0Asession%20bpp%3Ai%3A32%0D%0Aprompt%20for%20credentials%20on%20client%3Ai%3A1%0D%0Aspan%20monitors%3Ai%3A1%0D%0Ause%20multimon%3Ai%3A1%0D%0Aremoteapplicationmode%3Ai%3A1%0D%0Aserver%20port%3Ai%3A3389%0D%0Aallow%20font%20smoothing%3Ai%3A1%0D%0Apromptcredentialonce%3Ai%3A1%0D%0Aauthentication%20level%3Ai%3A2%0D%0Agatewayusagemethod%3Ai%3A1%0D%0Agatewayprofileusagemethod%3Ai%3A1%0D%0Agatewaycredentialssource%3Ai%3A0%0D%0Afull%20address%3As%3ACNST50091888CD%0D%0Aalternate%20shell%3As%3A%7C%7Ccalc%0D%0Aremoteapplicationprogram%3As%3A%7C%7Ccalc%0D%0Agatewayhostname%3As%3ACNST50091888BD%0D%0Aremoteapplicationname%3As%3ACalculator%0D%0Aremoteapplicationcmdline%3As%3A%0D%0Aalternate%20full%20address%3As%3ACNST50091888CD%0D%0Asignscope%3As%3AFull%20Address%2CAlternate%20Full%20Address%2CServer%20Port%2CGatewayHostname%2CGatewayUsageMethod%2CGatewayProfileUsageMethod%2CGatewayCredentialsSource%2CPromptCredentialOnce%2CAlternate%20Shell%2CRemoteApplicationProgram%2CRemoteApplicationMode%2CRemoteApplicationName%2CRemoteApplicationCmdLine%2CAuthentication%20Level%2CRedirectDrives%2CRedirectPrinters%2CRedirectCOMPorts%2CRedirectSmartCards%2CRedirectPOSDevices%2CRedirectClipboard%2CDevicesToRedirect%2CDrivesToRedirect%0D%0Asignature%3As%3AAQABAAEAAAC+CQAAMIIJugYJKoZIhvcNAQcCoIIJqzCCCacCAQExCzAJBgUrDgMC%20%20GgUAMAsGCSqGSIb3DQEHAaCCCJIwggNXMIICP6ADAgECAhBr/oe2Jqr9vU0RF0dJ%20%20fIbuMA0GCSqGSIb3DQEBBQUAMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTAeFw0xMTA5MjgwNjQ3%20%20MTdaFw0xNjA5MjgwNjU3MTZaMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTCCASIwDQYJKoZIhvcN%20%20AQEBBQADggEPADCCAQoCggEBAKRLmr75by3nEek9il80iimL2uoR4Lu13R1KW4yr%20%20X35pejxwfJxVprIyyphU30SVP4SFPWzmC7bYLxgzkIRQ0bEUhZI5DDMO6HgNEgSI%20%20yDvHawxurS57q0KjzHfSchD2XLBIHvJIQ21fJd/FuAsTfeRh9ukR/nulWFBSEy/l%20%20UmkN1o5eesXKmt0qtTNb6K3xOMTQJHiDt+5kFcWqE2KngljVtAtILWyaUMlDzVRQ%20%20TcTVqabz1nrFgPo3IZXhShbu4zdaWYGnUPLtT1SoZIY9KahBAUZfgYVcHVC7b1EG%20%202aEizyRzzPPml7sE2gCSFQASEqJ7Xx/b0YslWEuqho0P7jcCAwEAAaNRME8wCwYD%20%20VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGB/5ege5K+WJypu%20%20QF9kEHtvhAkLMBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAD%20%20X2xAiEZyYp+148i09P68X6LGyuQYrltmb+3DZiOFCFT9KYy/WlwFPgjzYkncF4ed%20%20ELnU6jenRVJrIBSXaa6ZvVQ6HYTf/pJLBkxd8lrCH4esEO1IPJ/c9JZDj0GWMYRL%20%20tmgiH6ZdgaAKjBvNZ5jnO9VA1fzuCvUPvjMezaW2F74StSlBAZlFfOPbIT1x07Hy%20%208M5WN2T+brk28dIkGbHIgmWeOKCI5qpaLsOV7CwPGHnRIzPl535M/rq3suCXC2gL%20%20NV2Zy92HxA/e9HXHUMfYsA1EX4SDNnXcOf51pYwL0XKyu580uTiaw4vyKk5ytjXN%20%20eGrmzKZXTnoCCaJEZf2vMIIFMzCCBBugAwIBAgIKOaNczQAAAAAAIDANBgkqhkiG%20%209w0BAQUFADA+MRQwEgYKCZImiZPyLGQBGRYEdGVzdDEUMBIGCgmSJomT8ixkARkW%20%20BGIxb2QxEDAOBgNVBAMTB2Ixb2QtQ0EwHhcNMTExMDEwMDYyNTEwWhcNMTMxMDA5%20%20MDYyNTEwWjBmMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGUFVET05HMREwDwYDVQQH%20%20EwhTSEFOR0hBSTEMMAoGA1UEChMDU0FQMQwwCgYDVQQLEwNTQVAxFzAVBgNVBAMT%20%20DkNOU1Q1MDA5MTg4OENEMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCg9PRt%20%20qwqdsEXMBEa/er330f+Ai1DtlrcwbSIb1H9P3I0Rd2goIwjSr4nlWtkpObDKTagQ%20%20b9WD4kjEqA39ClWos34jhSsyHfQrwbKEmPVLWzQpW1jiD5uv7M1M9aXwhio8xI8u%20%20K+at6CIxVtUiKfppjR9L2jvxygIfH5I2a2D/8QIDAQABo4ICjTCCAokwDgYDVR0P%20%20AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMHgGCSqGSIb3DQEJDwRrMGkw%20%20DgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJ%20%20YIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYI%20%20KoZIhvcNAwcwHQYDVR0OBBYEFPYSOL6F4ltMTEciHB0DZjDZLFmmMB8GA1UdIwQY%20%20MBaAFGB/5ege5K+WJypuQF9kEHtvhAkLMIHKBgNVHR8EgcIwgb8wgbyggbmggbaG%20%20gbNsZGFwOi8vL0NOPWIxb2QtQ0EsQ049Q05TVDUwMDkxODg4QUQsQ049Q0RQLENO%20%20PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy%20%20YXRpb24sREM9YjFvZCxEQz10ZXN0P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/%20%20YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBtwYIKwYBBQUH%20%20AQEEgaowgacwgaQGCCsGAQUFBzAChoGXbGRhcDovLy9DTj1iMW9kLUNBLENOPUFJ%20%20QSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25m%20%20aWd1cmF0aW9uLERDPWIxb2QsREM9dGVzdD9jQUNlcnRpZmljYXRlP2Jhc2U/b2Jq%20%20ZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTAhBgkrBgEEAYI3FAIEFB4S%20%20AFcAZQBiAFMAZQByAHYAZQByMA0GCSqGSIb3DQEBBQUAA4IBAQCR4jsGDiHK31ov%20%209tQgPZrCPzpbMbXsBUZ4j8XHpDP+7yRoI79YYlTPNgeo57PedEz2N+UW5H77+lAM%20%20TWB8ZuN00CHcBuIfv7wWgQ0rBh4uR6UtVcGlW2+LkDXFppU8TYtMjnX/o4Fl1ifW%20%20K1iCfPAAuoJ1r3IgX4B/g6XU4GSm4HsKgM3ZoXpckHA7zLXSFMElnsR7RvBVBVeg%20%203KhjBe5vc2GRRsmDazxNtKVdTwM8iA3j49pI742HLakF7N9/0nauXZmY2wHo5Q3K%20%2097POhOGp8HhF929wOfO/qTN0mBoO+7COwVjky21k1rAplxBEB52Uw6dzyz9yESoo%20%20unfgbb8WMYHxMIHuAgEBMEwwPjEUMBIGCgmSJomT8ixkARkWBHRlc3QxFDASBgoJ%20%20kiaJk/IsZAEZFgRiMW9kMRAwDgYDVQQDEwdiMW9kLUNBAgo5o1zNAAAAAAAgMAkG%20%20BSsOAwIaBQAwDQYJKoZIhvcNAQEBBQAEgYAO2Qtne4iM3ykm8Uclh8QIaKsTqSl+%20%20u1E5/LIvnQZqviaF7Y06rDFDqCwGIlEpbcDYYstm/Yv0lyn/I4gpCFPYPFdZrGr/%20%20aABYJA+LWLRMD0hB3KqcmQuLplKkykVvsU1DrwwA8iqGdrE+ztV4+0rgw6Iqgty4%20%20wCFJiuCMqX4uag%3D%3D%20%20%0D%0AWorkspace%20Id%3As%3ACNST50091888CD.b1od.test%0D%0A")'><img src='Contents/images/calc.png' alt='' /><br/><span>Calculator</span></div></div>
<div class='floating-div'><div class='bak' οnmοuseοver='over(this)' οnmοuseοut='out(this)' οnclick='goRDP("redirectclipboard%3Ai%3A1%0D%0Aredirectposdevices%3Ai%3A0%0D%0Aredirectprinters%3Ai%3A1%0D%0Aredirectcomports%3Ai%3A1%0D%0Aredirectsmartcards%3Ai%3A1%0D%0Adevicestoredirect%3As%3A*%0D%0Adrivestoredirect%3As%3A*%0D%0Aredirectdrives%3Ai%3A1%0D%0Asession%20bpp%3Ai%3A32%0D%0Aprompt%20for%20credentials%20on%20client%3Ai%3A1%0D%0Aspan%20monitors%3Ai%3A1%0D%0Ause%20multimon%3Ai%3A1%0D%0Aremoteapplicationmode%3Ai%3A1%0D%0Aserver%20port%3Ai%3A3389%0D%0Aallow%20font%20smoothing%3Ai%3A1%0D%0Apromptcredentialonce%3Ai%3A1%0D%0Aauthentication%20level%3Ai%3A2%0D%0Agatewayusagemethod%3Ai%3A1%0D%0Agatewayprofileusagemethod%3Ai%3A1%0D%0Agatewaycredentialssource%3Ai%3A0%0D%0Afull%20address%3As%3ACNST50091888CD%0D%0Aalternate%20shell%3As%3A%7C%7Cnotepad%0D%0Aremoteapplicationprogram%3As%3A%7C%7Cnotepad%0D%0Agatewayhostname%3As%3ACNST50091888BD%0D%0Aremoteapplicationname%3As%3Anotepad.exe%0D%0Aremoteapplicationcmdline%3As%3A%0D%0Aalternate%20full%20address%3As%3ACNST50091888CD%0D%0Asignscope%3As%3AFull%20Address%2CAlternate%20Full%20Address%2CServer%20Port%2CGatewayHostname%2CGatewayUsageMethod%2CGatewayProfileUsageMethod%2CGatewayCredentialsSource%2CPromptCredentialOnce%2CAlternate%20Shell%2CRemoteApplicationProgram%2CRemoteApplicationMode%2CRemoteApplicationName%2CRemoteApplicationCmdLine%2CAuthentication%20Level%2CRedirectDrives%2CRedirectPrinters%2CRedirectCOMPorts%2CRedirectSmartCards%2CRedirectPOSDevices%2CRedirectClipboard%2CDevicesToRedirect%2CDrivesToRedirect%0D%0Asignature%3As%3AAQABAAEAAAC+CQAAMIIJugYJKoZIhvcNAQcCoIIJqzCCCacCAQExCzAJBgUrDgMC%20%20GgUAMAsGCSqGSIb3DQEHAaCCCJIwggNXMIICP6ADAgECAhBr/oe2Jqr9vU0RF0dJ%20%20fIbuMA0GCSqGSIb3DQEBBQUAMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTAeFw0xMTA5MjgwNjQ3%20%20MTdaFw0xNjA5MjgwNjU3MTZaMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTCCASIwDQYJKoZIhvcN%20%20AQEBBQADggEPADCCAQoCggEBAKRLmr75by3nEek9il80iimL2uoR4Lu13R1KW4yr%20%20X35pejxwfJxVprIyyphU30SVP4SFPWzmC7bYLxgzkIRQ0bEUhZI5DDMO6HgNEgSI%20%20yDvHawxurS57q0KjzHfSchD2XLBIHvJIQ21fJd/FuAsTfeRh9ukR/nulWFBSEy/l%20%20UmkN1o5eesXKmt0qtTNb6K3xOMTQJHiDt+5kFcWqE2KngljVtAtILWyaUMlDzVRQ%20%20TcTVqabz1nrFgPo3IZXhShbu4zdaWYGnUPLtT1SoZIY9KahBAUZfgYVcHVC7b1EG%20%202aEizyRzzPPml7sE2gCSFQASEqJ7Xx/b0YslWEuqho0P7jcCAwEAAaNRME8wCwYD%20%20VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGB/5ege5K+WJypu%20%20QF9kEHtvhAkLMBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAD%20%20X2xAiEZyYp+148i09P68X6LGyuQYrltmb+3DZiOFCFT9KYy/WlwFPgjzYkncF4ed%20%20ELnU6jenRVJrIBSXaa6ZvVQ6HYTf/pJLBkxd8lrCH4esEO1IPJ/c9JZDj0GWMYRL%20%20tmgiH6ZdgaAKjBvNZ5jnO9VA1fzuCvUPvjMezaW2F74StSlBAZlFfOPbIT1x07Hy%20%208M5WN2T+brk28dIkGbHIgmWeOKCI5qpaLsOV7CwPGHnRIzPl535M/rq3suCXC2gL%20%20NV2Zy92HxA/e9HXHUMfYsA1EX4SDNnXcOf51pYwL0XKyu580uTiaw4vyKk5ytjXN%20%20eGrmzKZXTnoCCaJEZf2vMIIFMzCCBBugAwIBAgIKOaNczQAAAAAAIDANBgkqhkiG%20%209w0BAQUFADA+MRQwEgYKCZImiZPyLGQBGRYEdGVzdDEUMBIGCgmSJomT8ixkARkW%20%20BGIxb2QxEDAOBgNVBAMTB2Ixb2QtQ0EwHhcNMTExMDEwMDYyNTEwWhcNMTMxMDA5%20%20MDYyNTEwWjBmMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGUFVET05HMREwDwYDVQQH%20%20EwhTSEFOR0hBSTEMMAoGA1UEChMDU0FQMQwwCgYDVQQLEwNTQVAxFzAVBgNVBAMT%20%20DkNOU1Q1MDA5MTg4OENEMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCg9PRt%20%20qwqdsEXMBEa/er330f+Ai1DtlrcwbSIb1H9P3I0Rd2goIwjSr4nlWtkpObDKTagQ%20%20b9WD4kjEqA39ClWos34jhSsyHfQrwbKEmPVLWzQpW1jiD5uv7M1M9aXwhio8xI8u%20%20K+at6CIxVtUiKfppjR9L2jvxygIfH5I2a2D/8QIDAQABo4ICjTCCAokwDgYDVR0P%20%20AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMHgGCSqGSIb3DQEJDwRrMGkw%20%20DgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJ%20%20YIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYI%20%20KoZIhvcNAwcwHQYDVR0OBBYEFPYSOL6F4ltMTEciHB0DZjDZLFmmMB8GA1UdIwQY%20%20MBaAFGB/5ege5K+WJypuQF9kEHtvhAkLMIHKBgNVHR8EgcIwgb8wgbyggbmggbaG%20%20gbNsZGFwOi8vL0NOPWIxb2QtQ0EsQ049Q05TVDUwMDkxODg4QUQsQ049Q0RQLENO%20%20PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy%20%20YXRpb24sREM9YjFvZCxEQz10ZXN0P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/%20%20YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBtwYIKwYBBQUH%20%20AQEEgaowgacwgaQGCCsGAQUFBzAChoGXbGRhcDovLy9DTj1iMW9kLUNBLENOPUFJ%20%20QSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25m%20%20aWd1cmF0aW9uLERDPWIxb2QsREM9dGVzdD9jQUNlcnRpZmljYXRlP2Jhc2U/b2Jq%20%20ZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTAhBgkrBgEEAYI3FAIEFB4S%20%20AFcAZQBiAFMAZQByAHYAZQByMA0GCSqGSIb3DQEBBQUAA4IBAQCR4jsGDiHK31ov%20%209tQgPZrCPzpbMbXsBUZ4j8XHpDP+7yRoI79YYlTPNgeo57PedEz2N+UW5H77+lAM%20%20TWB8ZuN00CHcBuIfv7wWgQ0rBh4uR6UtVcGlW2+LkDXFppU8TYtMjnX/o4Fl1ifW%20%20K1iCfPAAuoJ1r3IgX4B/g6XU4GSm4HsKgM3ZoXpckHA7zLXSFMElnsR7RvBVBVeg%20%203KhjBe5vc2GRRsmDazxNtKVdTwM8iA3j49pI742HLakF7N9/0nauXZmY2wHo5Q3K%20%2097POhOGp8HhF929wOfO/qTN0mBoO+7COwVjky21k1rAplxBEB52Uw6dzyz9yESoo%20%20unfgbb8WMYHxMIHuAgEBMEwwPjEUMBIGCgmSJomT8ixkARkWBHRlc3QxFDASBgoJ%20%20kiaJk/IsZAEZFgRiMW9kMRAwDgYDVQQDEwdiMW9kLUNBAgo5o1zNAAAAAAAgMAkG%20%20BSsOAwIaBQAwDQYJKoZIhvcNAQEBBQAEgYB4eAk0JYvy3f0dhTPo09oOtK+rUOwM%20%204FJLY4FWKkDEruuo0GJ8GfDMMUu5vjWri86nK/AVYLHZO2eW7aMcmh1GrMcHi5Ir%20%201rGgiO2qSzPPYCUIv32l9tvqqDvvNHhZeZIQt2lojo9pf/rcq0bA9XgdXG4dfJmy%20%20wpsNDwZHkW3zUw%3D%3D%20%20%0D%0AWorkspace%20Id%3As%3ACNST50091888CD.b1od.test%0D%0A")'><img src='Contents/images/notepad.png' alt='' /><br/><span>Notepad</span></div></div>
<div class='floating-div'><div class='bak' οnmοuseοver='over(this)' οnmοuseοut='out(this)' οnclick='goRDP("redirectclipboard%3Ai%3A1%0D%0Aredirectposdevices%3Ai%3A0%0D%0Aredirectprinters%3Ai%3A1%0D%0Aredirectcomports%3Ai%3A1%0D%0Aredirectsmartcards%3Ai%3A1%0D%0Adevicestoredirect%3As%3A*%0D%0Adrivestoredirect%3As%3A*%0D%0Aredirectdrives%3Ai%3A1%0D%0Asession%20bpp%3Ai%3A32%0D%0Aprompt%20for%20credentials%20on%20client%3Ai%3A1%0D%0Aspan%20monitors%3Ai%3A1%0D%0Ause%20multimon%3Ai%3A1%0D%0Aremoteapplicationmode%3Ai%3A1%0D%0Aserver%20port%3Ai%3A3389%0D%0Aallow%20font%20smoothing%3Ai%3A1%0D%0Apromptcredentialonce%3Ai%3A1%0D%0Aauthentication%20level%3Ai%3A2%0D%0Agatewayusagemethod%3Ai%3A1%0D%0Agatewayprofileusagemethod%3Ai%3A1%0D%0Agatewaycredentialssource%3Ai%3A0%0D%0Afull%20address%3As%3ACNST50091888CD%0D%0Aalternate%20shell%3As%3A%7C%7Cmspaint%0D%0Aremoteapplicationprogram%3As%3A%7C%7Cmspaint%0D%0Agatewayhostname%3As%3ACNST50091888BD%0D%0Aremoteapplicationname%3As%3APaint%0D%0Aremoteapplicationcmdline%3As%3A%0D%0Aalternate%20full%20address%3As%3ACNST50091888CD%0D%0Asignscope%3As%3AFull%20Address%2CAlternate%20Full%20Address%2CServer%20Port%2CGatewayHostname%2CGatewayUsageMethod%2CGatewayProfileUsageMethod%2CGatewayCredentialsSource%2CPromptCredentialOnce%2CAlternate%20Shell%2CRemoteApplicationProgram%2CRemoteApplicationMode%2CRemoteApplicationName%2CRemoteApplicationCmdLine%2CAuthentication%20Level%2CRedirectDrives%2CRedirectPrinters%2CRedirectCOMPorts%2CRedirectSmartCards%2CRedirectPOSDevices%2CRedirectClipboard%2CDevicesToRedirect%2CDrivesToRedirect%0D%0Asignature%3As%3AAQABAAEAAAC+CQAAMIIJugYJKoZIhvcNAQcCoIIJqzCCCacCAQExCzAJBgUrDgMC%20%20GgUAMAsGCSqGSIb3DQEHAaCCCJIwggNXMIICP6ADAgECAhBr/oe2Jqr9vU0RF0dJ%20%20fIbuMA0GCSqGSIb3DQEBBQUAMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTAeFw0xMTA5MjgwNjQ3%20%20MTdaFw0xNjA5MjgwNjU3MTZaMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTCCASIwDQYJKoZIhvcN%20%20AQEBBQADggEPADCCAQoCggEBAKRLmr75by3nEek9il80iimL2uoR4Lu13R1KW4yr%20%20X35pejxwfJxVprIyyphU30SVP4SFPWzmC7bYLxgzkIRQ0bEUhZI5DDMO6HgNEgSI%20%20yDvHawxurS57q0KjzHfSchD2XLBIHvJIQ21fJd/FuAsTfeRh9ukR/nulWFBSEy/l%20%20UmkN1o5eesXKmt0qtTNb6K3xOMTQJHiDt+5kFcWqE2KngljVtAtILWyaUMlDzVRQ%20%20TcTVqabz1nrFgPo3IZXhShbu4zdaWYGnUPLtT1SoZIY9KahBAUZfgYVcHVC7b1EG%20%202aEizyRzzPPml7sE2gCSFQASEqJ7Xx/b0YslWEuqho0P7jcCAwEAAaNRME8wCwYD%20%20VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGB/5ege5K+WJypu%20%20QF9kEHtvhAkLMBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAD%20%20X2xAiEZyYp+148i09P68X6LGyuQYrltmb+3DZiOFCFT9KYy/WlwFPgjzYkncF4ed%20%20ELnU6jenRVJrIBSXaa6ZvVQ6HYTf/pJLBkxd8lrCH4esEO1IPJ/c9JZDj0GWMYRL%20%20tmgiH6ZdgaAKjBvNZ5jnO9VA1fzuCvUPvjMezaW2F74StSlBAZlFfOPbIT1x07Hy%20%208M5WN2T+brk28dIkGbHIgmWeOKCI5qpaLsOV7CwPGHnRIzPl535M/rq3suCXC2gL%20%20NV2Zy92HxA/e9HXHUMfYsA1EX4SDNnXcOf51pYwL0XKyu580uTiaw4vyKk5ytjXN%20%20eGrmzKZXTnoCCaJEZf2vMIIFMzCCBBugAwIBAgIKOaNczQAAAAAAIDANBgkqhkiG%20%209w0BAQUFADA+MRQwEgYKCZImiZPyLGQBGRYEdGVzdDEUMBIGCgmSJomT8ixkARkW%20%20BGIxb2QxEDAOBgNVBAMTB2Ixb2QtQ0EwHhcNMTExMDEwMDYyNTEwWhcNMTMxMDA5%20%20MDYyNTEwWjBmMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGUFVET05HMREwDwYDVQQH%20%20EwhTSEFOR0hBSTEMMAoGA1UEChMDU0FQMQwwCgYDVQQLEwNTQVAxFzAVBgNVBAMT%20%20DkNOU1Q1MDA5MTg4OENEMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCg9PRt%20%20qwqdsEXMBEa/er330f+Ai1DtlrcwbSIb1H9P3I0Rd2goIwjSr4nlWtkpObDKTagQ%20%20b9WD4kjEqA39ClWos34jhSsyHfQrwbKEmPVLWzQpW1jiD5uv7M1M9aXwhio8xI8u%20%20K+at6CIxVtUiKfppjR9L2jvxygIfH5I2a2D/8QIDAQABo4ICjTCCAokwDgYDVR0P%20%20AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMHgGCSqGSIb3DQEJDwRrMGkw%20%20DgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJ%20%20YIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYI%20%20KoZIhvcNAwcwHQYDVR0OBBYEFPYSOL6F4ltMTEciHB0DZjDZLFmmMB8GA1UdIwQY%20%20MBaAFGB/5ege5K+WJypuQF9kEHtvhAkLMIHKBgNVHR8EgcIwgb8wgbyggbmggbaG%20%20gbNsZGFwOi8vL0NOPWIxb2QtQ0EsQ049Q05TVDUwMDkxODg4QUQsQ049Q0RQLENO%20%20PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy%20%20YXRpb24sREM9YjFvZCxEQz10ZXN0P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/%20%20YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBtwYIKwYBBQUH%20%20AQEEgaowgacwgaQGCCsGAQUFBzAChoGXbGRhcDovLy9DTj1iMW9kLUNBLENOPUFJ%20%20QSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25m%20%20aWd1cmF0aW9uLERDPWIxb2QsREM9dGVzdD9jQUNlcnRpZmljYXRlP2Jhc2U/b2Jq%20%20ZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTAhBgkrBgEEAYI3FAIEFB4S%20%20AFcAZQBiAFMAZQByAHYAZQByMA0GCSqGSIb3DQEBBQUAA4IBAQCR4jsGDiHK31ov%20%209tQgPZrCPzpbMbXsBUZ4j8XHpDP+7yRoI79YYlTPNgeo57PedEz2N+UW5H77+lAM%20%20TWB8ZuN00CHcBuIfv7wWgQ0rBh4uR6UtVcGlW2+LkDXFppU8TYtMjnX/o4Fl1ifW%20%20K1iCfPAAuoJ1r3IgX4B/g6XU4GSm4HsKgM3ZoXpckHA7zLXSFMElnsR7RvBVBVeg%20%203KhjBe5vc2GRRsmDazxNtKVdTwM8iA3j49pI742HLakF7N9/0nauXZmY2wHo5Q3K%20%2097POhOGp8HhF929wOfO/qTN0mBoO+7COwVjky21k1rAplxBEB52Uw6dzyz9yESoo%20%20unfgbb8WMYHxMIHuAgEBMEwwPjEUMBIGCgmSJomT8ixkARkWBHRlc3QxFDASBgoJ%20%20kiaJk/IsZAEZFgRiMW9kMRAwDgYDVQQDEwdiMW9kLUNBAgo5o1zNAAAAAAAgMAkG%20%20BSsOAwIaBQAwDQYJKoZIhvcNAQEBBQAEgYBsuJ/qSqaQseMJr5iHLj/DLXXQ9w+J%20%20G6ymYLGJ9e16bTFpuaVvDobvWC18/KCoK7+NWr7SISTfyFLgvaB42J6JNreEC8Xr%20%20IzkFesdf3bJio8toFVUYeI3YRbLPOYMqe/U7MpYd88CKtU/oJxJ/EcBZ0ZLbJsFM%20%20yf7n75TvAhc7/w%3D%3D%20%20%0D%0AWorkspace%20Id%3As%3ACNST50091888CD.b1od.test%0D%0A")'><img src='Contents/images/mspaint.png' alt='' /><br/><span>Paint</span></div></div>
<div class='floating-div'><div class='bak' οnmοuseοver='over(this)' οnmοuseοut='out(this)' οnclick='goRDP("redirectclipboard%3Ai%3A1%0D%0Aredirectposdevices%3Ai%3A0%0D%0Aredirectprinters%3Ai%3A1%0D%0Aredirectcomports%3Ai%3A1%0D%0Aredirectsmartcards%3Ai%3A1%0D%0Adevicestoredirect%3As%3A*%0D%0Adrivestoredirect%3As%3A*%0D%0Aredirectdrives%3Ai%3A1%0D%0Asession%20bpp%3Ai%3A32%0D%0Aprompt%20for%20credentials%20on%20client%3Ai%3A1%0D%0Aspan%20monitors%3Ai%3A1%0D%0Ause%20multimon%3Ai%3A1%0D%0Aremoteapplicationmode%3Ai%3A1%0D%0Aserver%20port%3Ai%3A3389%0D%0Aallow%20font%20smoothing%3Ai%3A1%0D%0Apromptcredentialonce%3Ai%3A1%0D%0Aauthentication%20level%3Ai%3A2%0D%0Agatewayusagemethod%3Ai%3A1%0D%0Agatewayprofileusagemethod%3Ai%3A1%0D%0Agatewaycredentialssource%3Ai%3A0%0D%0Afull%20address%3As%3ACNST50091888CD%0D%0Aalternate%20shell%3As%3A%7C%7Cwordpad%0D%0Aremoteapplicationprogram%3As%3A%7C%7Cwordpad%0D%0Agatewayhostname%3As%3ACNST50091888BD%0D%0Aremoteapplicationname%3As%3AWordPad%0D%0Aremoteapplicationcmdline%3As%3A%0D%0Aalternate%20full%20address%3As%3ACNST50091888CD%0D%0Asignscope%3As%3AFull%20Address%2CAlternate%20Full%20Address%2CServer%20Port%2CGatewayHostname%2CGatewayUsageMethod%2CGatewayProfileUsageMethod%2CGatewayCredentialsSource%2CPromptCredentialOnce%2CAlternate%20Shell%2CRemoteApplicationProgram%2CRemoteApplicationMode%2CRemoteApplicationName%2CRemoteApplicationCmdLine%2CAuthentication%20Level%2CRedirectDrives%2CRedirectPrinters%2CRedirectCOMPorts%2CRedirectSmartCards%2CRedirectPOSDevices%2CRedirectClipboard%2CDevicesToRedirect%2CDrivesToRedirect%0D%0Asignature%3As%3AAQABAAEAAAC+CQAAMIIJugYJKoZIhvcNAQcCoIIJqzCCCacCAQExCzAJBgUrDgMC%20%20GgUAMAsGCSqGSIb3DQEHAaCCCJIwggNXMIICP6ADAgECAhBr/oe2Jqr9vU0RF0dJ%20%20fIbuMA0GCSqGSIb3DQEBBQUAMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTAeFw0xMTA5MjgwNjQ3%20%20MTdaFw0xNjA5MjgwNjU3MTZaMD4xFDASBgoJkiaJk/IsZAEZFgR0ZXN0MRQwEgYK%20%20CZImiZPyLGQBGRYEYjFvZDEQMA4GA1UEAxMHYjFvZC1DQTCCASIwDQYJKoZIhvcN%20%20AQEBBQADggEPADCCAQoCggEBAKRLmr75by3nEek9il80iimL2uoR4Lu13R1KW4yr%20%20X35pejxwfJxVprIyyphU30SVP4SFPWzmC7bYLxgzkIRQ0bEUhZI5DDMO6HgNEgSI%20%20yDvHawxurS57q0KjzHfSchD2XLBIHvJIQ21fJd/FuAsTfeRh9ukR/nulWFBSEy/l%20%20UmkN1o5eesXKmt0qtTNb6K3xOMTQJHiDt+5kFcWqE2KngljVtAtILWyaUMlDzVRQ%20%20TcTVqabz1nrFgPo3IZXhShbu4zdaWYGnUPLtT1SoZIY9KahBAUZfgYVcHVC7b1EG%20%202aEizyRzzPPml7sE2gCSFQASEqJ7Xx/b0YslWEuqho0P7jcCAwEAAaNRME8wCwYD%20%20VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGB/5ege5K+WJypu%20%20QF9kEHtvhAkLMBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAD%20%20X2xAiEZyYp+148i09P68X6LGyuQYrltmb+3DZiOFCFT9KYy/WlwFPgjzYkncF4ed%20%20ELnU6jenRVJrIBSXaa6ZvVQ6HYTf/pJLBkxd8lrCH4esEO1IPJ/c9JZDj0GWMYRL%20%20tmgiH6ZdgaAKjBvNZ5jnO9VA1fzuCvUPvjMezaW2F74StSlBAZlFfOPbIT1x07Hy%20%208M5WN2T+brk28dIkGbHIgmWeOKCI5qpaLsOV7CwPGHnRIzPl535M/rq3suCXC2gL%20%20NV2Zy92HxA/e9HXHUMfYsA1EX4SDNnXcOf51pYwL0XKyu580uTiaw4vyKk5ytjXN%20%20eGrmzKZXTnoCCaJEZf2vMIIFMzCCBBugAwIBAgIKOaNczQAAAAAAIDANBgkqhkiG%20%209w0BAQUFADA+MRQwEgYKCZImiZPyLGQBGRYEdGVzdDEUMBIGCgmSJomT8ixkARkW%20%20BGIxb2QxEDAOBgNVBAMTB2Ixb2QtQ0EwHhcNMTExMDEwMDYyNTEwWhcNMTMxMDA5%20%20MDYyNTEwWjBmMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGUFVET05HMREwDwYDVQQH%20%20EwhTSEFOR0hBSTEMMAoGA1UEChMDU0FQMQwwCgYDVQQLEwNTQVAxFzAVBgNVBAMT%20%20DkNOU1Q1MDA5MTg4OENEMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCg9PRt%20%20qwqdsEXMBEa/er330f+Ai1DtlrcwbSIb1H9P3I0Rd2goIwjSr4nlWtkpObDKTagQ%20%20b9WD4kjEqA39ClWos34jhSsyHfQrwbKEmPVLWzQpW1jiD5uv7M1M9aXwhio8xI8u%20%20K+at6CIxVtUiKfppjR9L2jvxygIfH5I2a2D/8QIDAQABo4ICjTCCAokwDgYDVR0P%20%20AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMHgGCSqGSIb3DQEJDwRrMGkw%20%20DgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJ%20%20YIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYI%20%20KoZIhvcNAwcwHQYDVR0OBBYEFPYSOL6F4ltMTEciHB0DZjDZLFmmMB8GA1UdIwQY%20%20MBaAFGB/5ege5K+WJypuQF9kEHtvhAkLMIHKBgNVHR8EgcIwgb8wgbyggbmggbaG%20%20gbNsZGFwOi8vL0NOPWIxb2QtQ0EsQ049Q05TVDUwMDkxODg4QUQsQ049Q0RQLENO%20%20PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy%20%20YXRpb24sREM9YjFvZCxEQz10ZXN0P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/%20%20YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBtwYIKwYBBQUH%20%20AQEEgaowgacwgaQGCCsGAQUFBzAChoGXbGRhcDovLy9DTj1iMW9kLUNBLENOPUFJ%20%20QSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25m%20%20aWd1cmF0aW9uLERDPWIxb2QsREM9dGVzdD9jQUNlcnRpZmljYXRlP2Jhc2U/b2Jq%20%20ZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTAhBgkrBgEEAYI3FAIEFB4S%20%20AFcAZQBiAFMAZQByAHYAZQByMA0GCSqGSIb3DQEBBQUAA4IBAQCR4jsGDiHK31ov%20%209tQgPZrCPzpbMbXsBUZ4j8XHpDP+7yRoI79YYlTPNgeo57PedEz2N+UW5H77+lAM%20%20TWB8ZuN00CHcBuIfv7wWgQ0rBh4uR6UtVcGlW2+LkDXFppU8TYtMjnX/o4Fl1ifW%20%20K1iCfPAAuoJ1r3IgX4B/g6XU4GSm4HsKgM3ZoXpckHA7zLXSFMElnsR7RvBVBVeg%20%203KhjBe5vc2GRRsmDazxNtKVdTwM8iA3j49pI742HLakF7N9/0nauXZmY2wHo5Q3K%20%2097POhOGp8HhF929wOfO/qTN0mBoO+7COwVjky21k1rAplxBEB52Uw6dzyz9yESoo%20%20unfgbb8WMYHxMIHuAgEBMEwwPjEUMBIGCgmSJomT8ixkARkWBHRlc3QxFDASBgoJ%20%20kiaJk/IsZAEZFgRiMW9kMRAwDgYDVQQDEwdiMW9kLUNBAgo5o1zNAAAAAAAgMAkG%20%20BSsOAwIaBQAwDQYJKoZIhvcNAQEBBQAEgYBbVqCrJnWqTzB4MlEmMNxg0AjGcMaZ%20%20/xW84ELw1hGZPis3ewFgmyRCFrrqLgzdaUp4FoDHRPa8RjrmtqSeTb9SNyJNUaQE%20%20ggtluFkYqFAnbAGhIpqaJlxbIs8fpj8HXUgIxP7wBxoz7BFk9Y5LGezhT9Df2+si%20%20U2s37dhnACjB1w%3D%3D%20%20%0D%0AWorkspace%20Id%3As%3ACNST50091888CD.b1od.test%0D%0A")'><img src='Contents/images/wordpad.png' alt='' /><br/><span>WordPad</span></div></div>
</div>
<object type='application/x-oleobject' id='MsRdpClient' name='MsRdpClient' height='0'
width='0' classid='CLSID:6A5B0C7C-5CCB-4F10-A043-B8DE007E1952'>
</object>
<object type='application/x-oleobject' id='MsRdpClient1' name='MsRdpClient1' height='0'
width='0' classid='CLSID:7390f3d8-0439-4c05-91e3-cf5cb290c3d0'>
</object>
</form>
</body>
</html>

远程应用访问的参数配置是写死的,可以参照以下的配置生成配置命令:

MsRdpClient.MsRdpClientShell.RdpFileContents =
"redirectclipboard:i:1\r\n" +
"redirectposdevices:i:0\r\n" +
"redirectprinters:i:1\r\n" +
"redirectcomports:i:1\r\n" +
"redirectsmartcards:i:1\r\n" +
"devicestoredirect:s:*\r\n" +
"drivestoredirect:s:*\r\n" +
"redirectdrives:i:1\r\n" +
"session bpp:i:32\r\n" +
"span monitors:i:1\r\n" +
"prompt for credentials on client:i:1\r\n" +
"remoteapplicationmode:i:1\r\n" +
"server port:i:3389\r\n" +
"allow font smoothing:i:1\r\n" +
"promptcredentialonce:i:1\r\n" +
"authentication level:i:0\r\n" +
"gatewayusagemethod:i:2\r\n" +
"gatewayprofileusagemethod:i:1\r\n" +
"gatewaycredentialssource:i:0\r\n" +
"full address:s:<serverIP>\r\n" +
"alternate shell:s:||calc\r\n" +
"remoteapplicationprogram:s:||calc\r\n" +
"remoteapplicationname:s:Calculator\r\n" +
"remoteapplicationcmdline:s:\r\n";

值得注意的参数是full address,它意味着远程机器的IP地址

运行效果:

点击连接后,输入用户名密码即可打开远程机器上的word。

这里是源码下载地址,源码经过了测试,如果无法正常运行,请查看软件环境是否如文章开头所述,有问题可在评论区留言。

Remote desktop web access相关推荐

  1. 使用远程桌面Remote desktop访问Azure虚拟机

    首先创建一Azure的Web Role 项目,右击Project的发布Publish菜单 在弹出的窗口中,我们可以看到配置远程桌面Configure Remote Desktop connection ...

  2. 远程桌工具-Remote Desktop Organizer

    每次部署UAT或者版本新上线,都需要不断链接不同的服务器:Web Server .DB Server.JOB Server.SearcheEngine Server.用系统自带的远程桌面链接,总是不断 ...

  3. Mac远程控制软件哪款好用?Remote Desktop manager for mac「专业」

    Remote Desktop Manager是一款可以在Mac平台上运行的远程桌面管理软件,曾被一度誉为网络上最优秀的一款远程桌面管理工具,Remote Desktop Manager界面简洁.操作简 ...

  4. Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)

    Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop) TechNet Blogs » 喻勇(Frank Yu)的技术博客 » Windows 7中的 ...

  5. Mac远程Win桌面官方工具——Microsoft Remote Desktop for mac

    微软官方专门为Mac用户提供了一款类Windows mstsc的远程桌面工具--Microsoft Remote Desktop for mac,专门用于远程控制Windows桌面. 但是.苹果App ...

  6. 免费的远程桌面工具 Chrome Remote Desktop

    免费 除了TeamViewer,还有另外一个免费的桌面软件 Chrome Remote Desktop 下载两个,一个是Chrome浏览器插件,一个是应用软件 插件下载地址:https://chrom ...

  7. 远程桌面连接软件 Remote Desktop Manager for Mac

    文章来源于:风云社区 Remote Desktop Manager for Mac 2019.1.5[上[风云社区],搜索软件名字,即可查看下载] 集中,管理和保护远程连接 IT部门负责管理和控制对不 ...

  8. java remote desktop_Chrome Remote Desktop:让你在任意设备上远程连接Windows桌面

    虽然在 Windows 系统中已原生整合远程桌面功能,但会被控制的客户端桌面会被强制重新调整,以适应控制方的设备.这意味着当你远程连接的时候,所有已经打开的应用都会变成小窗口.幸运的是,谷歌提供了一款 ...

  9. 远程连接Remote Desktop Manager Mac版 2022最新

    Remote Desktop Manager Mac中文版是目前Mac平台上最好用的一款远程桌面管理工具,Remote Desktop Manager Mac版除了可以多个远程桌面连接.多个ftp连接 ...

最新文章

  1. scala 提交任务
  2. python django windows_Python+Django在windows下的开发环境配置图解
  3. JStorm与Storm源码分析(八)--计时器工具-mk-timer
  4. POJ1135比较有意思的对短路(多米骨牌)
  5. Font Awesome-一款吊炸天的字体图标插件中文全介绍
  6. Learning Python 009 dict(字典)和 set
  7. js生成唯一id_【融云分析】如何实现分布式场景下唯一 ID 生成?
  8. 1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)
  9. HDFS分布式文件系统设计思想
  10. 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
  11. 消息中间件的核心思想
  12. php .net mvc,总是觉得asp.net MVC 写着很别扭,对比PHP的mvc,asp.net 麻烦很多?
  13. jssdk 获取微信收货地址_微信收货地址共享开发接口讲解
  14. python简单爬虫代码-Python爬虫――写出最简单的网页爬虫
  15. Exporting the operator hardsigmoid to ONNX opset version 11 is not supported
  16. python爬虫qq音乐歌词_Python如何爬取qq音乐歌词到本地
  17. 计算机辅助教学课件中的辅导型模式是以,【2017年整理】1、下面属于计算机辅助教学简称的是 ( ).doc...
  18. 机器学习 | 样本不平衡问题处理方法
  19. AE开发之图层渲染20210603
  20. update与fixedupdate检测键盘输入的出现的问题

热门文章

  1. 7-4 部落(25 分)
  2. “华为云电脑”8 月 16 日将停止服务和运营
  3. STM32 串口DMA收发(二)
  4. 佳明手表APP开发系列02——汉字和图标的标准显示
  5. 【Pytorch】构建VOC2012数据集代码详解
  6. 记录集 执行mysql_mysql 多次查询后再执行记录集
  7. php网站访问统计,php访问量统计-小风博客 - XiaoFeng Blog - 佘佳栋的个人博客
  8. 《开源公开课分享》:Java开源框架案例视频分享
  9. python案例分析大学生薪资_Python数据分析实战:解密数据分析师的薪资和需求
  10. 爱尔兰博士后招聘|利默里克大学-广告学