Remote desktop web access

微软提供了一个远程访问“同一个域内机器上安装的桌面应用”的方案,他们把这套方案称之为"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。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ThinVNC - Web远程桌面是一种基于Web的远程桌面访问工具。它允许用户通过Web浏览器远程访问和控制其计算机上的桌面。通过ThinVNC,用户可以在任何设备上(无论是电脑、平板还是手机)使用一个简单的Web浏览器来远程连接到自己的计算机。 使用ThinVNC,用户无需安装额外的软件或插件,只需打开浏览器并输入ThinVNC服务器的地址即可进行远程访问。ThinVNC通过HTML5技术实现了远程桌面访问功能,使用户能够通过普通的Web浏览器与自己的计算机进行交互。 ThinVNC具有高度安全的特性,使用SSL加密协议保护数据传输,并支持Windows登录凭证,确保远程访问的安全性。同时,ThinVNC还具有良好的性能和响应速度,使用户能够流畅地在远程桌面上进行操作。 除了基本的远程访问功能外,ThinVNC还提供了一些高级功能。例如,用户可以在远程计算机上上传和下载文件,且可以通过拖放实现文件的传输。此外,ThinVNC还支持远程打印功能,用户可以在远程计算机上打印文档。 总而言之,ThinVNC是一个方便、安全和高效的基于Web的远程桌面访问工具,它使用户能够通过简单的浏览器操作自己的计算机。无论是办公还是个人使用,ThinVNC都为用户提供了便利和灵活性。 ### 回答2: ThinVNC是一种基于Web的远程桌面解决方案。它允许用户通过Web浏览器远程访问和控制远程计算机。ThinVNC使用HTML5技术,无需安装任何插件或客户端软件,因此可以在几乎任何操作系统和设备上进行访问。 ThinVNC具有许多优点。首先,它非常方便,因为用户只需在Web浏览器中输入ThinVNC的地址即可访问远程计算机。这使得远程访问变得简单和快捷,无论是在办公室还是在家中都可以轻松实现。 其次,ThinVNC是跨平台的。无论您使用的是Windows、Mac还是Linux等操作系统,只要有一个支持HTML5的Web浏览器,您就可以远程访问其他计算机。这为多平台用户提供了很大的便利。 此外,ThinVNC还提供安全的远程访问。它支持使用SSL加密连接,确保在远程访问过程中的数据传输安全。因此,您可以放心地在不同网络之间进行远程连接,而不必担心数据被窃取或篡改的风险。 另外,ThinVNC还具有高效的性能。它能够在低带宽网络条件下实现流畅的远程访问体验。此外,它支持文件传输功能,使您可以方便地在本地计算机和远程计算机之间传输文件。 总而言之,ThinVNC是一种方便、跨平台、安全和高效的Web远程桌面解决方案。无论是在办公环境中需要远程办公,还是需要远程支持家人和朋友的电脑问题,ThinVNC都能帮助您轻松实现远程访问和控制。 ### 回答3: ThinVNC是一种Web远程桌面解决方案。它是一种基于Web的远程访问技术,允许用户通过Web浏览器访问和控制远程计算机或服务器。 ThinVNC非常方便和易于使用。用户只需在Web浏览器中输入ThinVNC服务器的URL,并提供适当的凭据,就可以立即访问远程计算机上的桌面。因此,不需要安装任何客户端软件或浏览器插件。 ThinVNC提供了安全的远程桌面体验。它使用Secure Socket Layer(SSL)协议进行通信,确保数据在传输过程中的安全性。此外,ThinVNC支持远程访问授权,只有授权用户才能访问远程计算机。 ThinVNC具有良好的跨平台兼容性。无论用户使用的是Windows、Mac还是Linux操作系统,都可以通过ThinVNC访问远程计算机。这种跨平台兼容性使得ThinVNC成为许多企业和组织中远程工作和远程协作的理想选择。 总而言之,ThinVNC是一种优秀的Web远程桌面解决方案,提供用户轻松访问和控制远程计算机的能力。它的简洁易用、安全性和跨平台兼容性使其成为许多用户的首选,无论是在家办公还是远程协作都能够带来便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值