我想将远程桌面场的 RemoteApps 静默添加到 Windows 7 机器的RemoteApp 和桌面连接控制面板中。
订阅由 RD Web 访问服务器提供的 RSS 提要rundll32 tsworkspace
的一般过程似乎是可行的方法,但有问题的客户端与 RD 农场位于一个单独的、不信任的域中。并且https://rdbroker/RDWeb/FeedLogin/WebFeedlogin.aspx
URI 需要身份验证,所以它根本不起作用。
我尝试为 IIS 站点树中的文件夹启用匿名身份验证(使用IUSR、应用程序池身份甚至特权域用户作为身份)RDWeb/FeedLogin
,但尝试检索提要返回Server Error in '/RDWeb/FeedLogin' Application.
IIS 记录未处理的 NullReference 异常:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 26.05.2014 14:50:08
Event time (UTC): 26.05.2014 12:50:08
Event ID: 66cc347cf8884a4fa0567b5e7c378d61
Event sequence: 4
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/FeedLogin-6-130455822088289842
Trust level: Full
Application Virtual Path: /RDWeb/FeedLogin
Application Path: C:\Windows\Web\RDWeb\FeedLogin\
Machine name: rdbroker
Process information:
Process ID: 1016
Process name: w3wp.exe
Account name: IIS APPPOOL\RDWebAccess
Exception information:
Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.
Request information:
Request URL: https://rdbroker:443/RDWeb/FeedLogin/WebFeedlogin.aspx?ReturnUrl=An unhandled exception has occurred.fRDWebAn unhandled exception has occurred.fFeedAn unhandled exception has occurred.fwebfeed.aspx
Request path: /RDWeb/FeedLogin/WebFeedlogin.aspx
User host address: 192.168.8.70
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOL\RDWebAccess
Thread information:
Thread ID: 6
Thread account name: IIS APPPOOL\RDWebAccess
Is impersonating: False
Stack trace: at ASP.webfeedlogin_aspx.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Custom event details:
想法?
我终于通过使用AutoITv3脚本自动化 tsworkspace 对话框来“解决”这个问题。我使用用户的 RemoteApp 用户名填充了employeeID属性,并让脚本查询此属性,使用它来预填充 RemoteApp Web 提要的安全对话框以及 RD 客户端本身的UsernameHint注册表值。因此,在最好的情况下,用户只需要运行可执行文件并将她的密码输入到预先填充了她的用户名的身份验证对话框中。
脚本如下。请注意,WinWait调用正在等待带有特定标题或消息文本的窗口出现,您需要根据客户的本地化和 Windows 版本进行更改。