如何在RDP上自动绕过登录消息
本文关键字:登录 消息 RDP | 更新日期: 2023-09-27 18:06:01
我正在尝试使用c#通过远程桌面登录服务器。我能够使用AxMSTSCLib
和下面的代码启动连接。然而,我被我们域名的安全通知卡住了。
当手动登录时,它要求您在登录完成之前单击通知上的ok。我一直无法找到无论如何通过我的应用程序与这个OK按钮进行交互。我尝试了SendKeys
的变体,使用互操作服务发送键事件,找到光标位置并发送鼠标单击事件……
我已经没有主意了。
rdp.Server = server;
rdp.Domain = domain;
rdp.UserName = userName;
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = password;
rdp.StartConnected = 1;
rdp.Connect();
谢谢
好吧,有一种方法可以满足你的要求。您需要下载Windows 7嵌入式标准(WES7 wSP1)的副本。WES7包含了其他版本的Windows 7没有的东西——对话框过滤器。它作为服务运行,并允许您指定某些自动执行的窗口事件,而无需用户交互。
对话框过滤器编辑器与Windows嵌入式标准7工具一起安装在EmbeddedSDK'bin文件夹中。
你所要做的就是:
-
通过将必要的对话框过滤器文件复制到c:'Windows' system32,将该服务添加到Windows。有x86和x64两种版本,所以请选择正确的架构
-
注册文件,启用服务自动运行
-
将ConfigurationList.xml文件添加到C:'ProgramData'Microsoft'DialogFilter。此位置默认是隐藏的,所以请确保在Windows资源管理器中显示隐藏文件并取消隐藏受保护的系统文件。
我实际上已经创建了ConfigurationList.xml文件,因此您可以简单地复制以下代码并将其保存为"ConfigurationList.xml":
<?xml version="1.0" encoding="utf-8"?>
<CL:dialogs xmlns:CL="urn:Dialogs">
<dialog>
<ProcessImageName>rundll32.exe</ProcessImageName>
<Title>Remote Desktop Connection</Title>
<Class>#32770</Class>
<Buttons>
<Button>OK</Button>
<Button>Cancel</Button>
<Button>Close</Button>
</Buttons>
<Actions>
<Action>OK</Action>
</Actions>
</dialog>
</CL:dialogs>
正如你所看到的,这个动作被设置为在建立RDP连接时弹出的RDP对话框中自动按下OK按钮。
关于直接从MS对话框过滤器的更多信息:https://msdn.microsoft.com/en-US/library/ff794135 (v = winembedded.60) . aspx
我找到了一个更简单的方法:有一个免费的小应用程序叫做ClickOff,它的工作方式与Windows Embedded Standard 7 DialogFilter非常相似。
你可以在这里下载ClickOff v1.90
安装ClickOff后,您可以定义捕获哪个窗口,以及单击其中的哪个按钮。唯一的问题是你必须把它添加到你的启动应用程序。
我已经创建了一个点击关闭。在30秒的RDP超时弹出窗口中单击OK。该文件应放在C:'Users'USERNAME'AppData'Roaming'ClickOff。下面是文件的内容:
1.900
WINDOWTITLE="Remote Desktop Connection" BUTTONTEXT="OK" MSGTEXT="CompName''UserName wants to connect to this machine.'r'n'r'nClick OK to disconnect your session immediately or click cancel to stay connected.'r'n'r'nOtherwise, you will be disconnected in 30 seconds." BUTTONID="1" MSGID="65535" DLGID="0" CLKEVENT="17" CLKMETHOD="3" TIMESCLICKED="0" WAIT="0" BPOSX="0" BPOSY="0" ;
欢呼。