windows-server-2008-r2 – 非域客户端的RemoteApps

前端之家收集整理的这篇文章主要介绍了windows-server-2008-r2 – 非域客户端的RemoteApps前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@ 我希望将远程桌面服务器场的RemoteApps静默添加Windows 7计算机的RemoteApp和桌面连接控制面板中.

subscribing to an RSS feed served by the RD Web Access server via rundll32 tsworkspace的一般过程似乎是要走的路,但有问题的客户端是在一个独立的,不信任的域而不是RD服务器场.并且https://rdbroker/RDWeb/FeedLogin/WebFeedlogin.aspx URI需要身份验证,因此它根本不起作用.

我已尝试为IIS’站点树中的RDWeb / FeedLogin文件夹启用匿名身份验证(使用IUSR,应用程序池标识甚至特权域用户作为标识),但尝试检索订阅源会在’/ RDWeb /中返回服务器错误FeedLogin’应用程序. IIS记录未处理的NullReference异常:

  1. Event code: 3005
  2. Event message: An unhandled exception has occurred.
  3. Event time: 26.05.2014 14:50:08
  4. Event time (UTC): 26.05.2014 12:50:08
  5. Event ID: 66cc347cf8884a4fa0567b5e7c378d61
  6. Event sequence: 4
  7. Event occurrence: 1
  8. Event detail code: 0
  9.  
  10. Application information:
  11. Application domain: /LM/W3SVC/1/ROOT/RDWeb/FeedLogin-6-130455822088289842
  12. Trust level: Full
  13. Application Virtual Path: /RDWeb/FeedLogin
  14. Application Path: C:\Windows\Web\RDWeb\FeedLogin\
  15. Machine name: rdbroker
  16.  
  17. Process information:
  18. Process ID: 1016
  19. Process name: w3wp.exe
  20. Account name: IIS APPPOOL\RDWebAccess
  21.  
  22. Exception information:
  23. Exception type: NullReferenceException
  24. Exception message: Object reference not set to an instance of an object.
  25.  
  26. Request information:
  27. 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
  28. Request path: /RDWeb/FeedLogin/WebFeedlogin.aspx
  29. User host address: 192.168.8.70
  30. User:
  31. Is authenticated: False
  32. Authentication Type:
  33. Thread account name: IIS APPPOOL\RDWebAccess
  34.  
  35. Thread information:
  36. Thread ID: 6
  37. Thread account name: IIS APPPOOL\RDWebAccess
  38. Is impersonating: False
  39. Stack trace: at ASP.webFeedlogin_aspx.Page_Load(Object sender,EventArgs e)
  40. at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)
  41. at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)
  42. at System.Web.UI.Control.OnLoad(EventArgs e)
  43. at System.Web.UI.Control.LoadRecursive()
  44. at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
  45.  
  46.  
  47. Custom event details:

想法?

我终于通过使用 AutoITv3脚本自动化tsworkspace对话框来“解决”了这个问题.我已使用用户的RemoteApp用户名填充employeeID属性,并使脚本查询属性,使用它来预填充RemoteApp Web订阅源的安全对话框以及RD客户端本身的UsernameHint注册表值.因此,在最好的情况下,用户只需要运行可执行文件并将其密码输入到预先填写了用户名的身份验证对话框中.

脚本如下.请注意,WinWait调用正在等待显示特定标题或消息文本的窗口,您将需要根据客户的本地化和Windows版本进行更改.

  1. #include <AD.au3>
  2.  
  3. Dim $WCXPath = "\\fserver2\RemoteAppFeed$\rdcb.wcx"
  4. Dim $FeedAddress = "rdcb.ad.contoso.com"
  5. Dim $WizardWinHandle
  6. Dim $SecurityWinHandle
  7. Dim $CallResult
  8. Dim $aProperties[1][2]
  9. Dim $UserName
  10.  
  11. $UserName="AD\<YourADLogin>"
  12.  
  13. ; Open Connection to the Active Directory
  14. _AD_Open()
  15.  
  16. ; Write UsernameHint values with the user's RD server authentication name
  17. $aProperties = _AD_GetObjectProperties(@UserName,"employeeID")
  18. ;_ArrayDisplay($aProperties,"Active Directory Functions - Example 2 - Properties for user '" & @UserName & "'")
  19. If IsArray($aProperties) Then
  20. If UBound($aProperties,2)=2 and UBound($aProperties,1)=2 Then
  21. If $aProperties[1][0]="employeeID" and StringLen($aProperties[1][1])>1 Then
  22. $UserName = "CIT-AD\" & $aProperties[1][1]
  23. RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\rdfarm.ad.contoso.com","UsernameHint","REG_SZ",$UserName)
  24. RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\ts13.ad.contoso.com",$UserName)
  25. EndIf
  26. EndIf
  27. EndIf
  28.  
  29. Run ("C:\Windows\System32\xwizard.exe RunWizard /u {7940acf8-60ba-4213-a7c3-f3b400ee266d} /z" & $WCXPath)
  30. $WizardWinHandle = WinWait("Neue Verbindung mit RemoteApp",$FeedAddress)
  31. ;MsgBox(0,"Debug","RemoteApp Window appeared with handle " & $WizardWinHandle)
  32. WinActivate($WizardWinHandle)
  33. $CallResult = ControlClick($WizardWinHandle,"","Button1")
  34. ;MsgBox(0,"Clicked "Next" with result" & $CallResult)
  35. $SecurityWinHandle = WinWait("Windows-Sicherheit")
  36. ;MsgBox(0,"Windows Security Window appeared with handle " & $SecurityWinHandle)
  37. WinActivate($SecurityWinHandle)
  38. $CallResult = ControlSend($SecurityWinHandle,"Edit1",$UserName)
  39. ;MsgBox(0,"Sent username data with result" & $CallResult)
  40. $CallResult = ControlClick($SecurityWinHandle,"Clicked to remember credentials with result" & $CallResult)
  41. $CallResult = ControlFocus($SecurityWinHandle,"Edit2")
  42. ;MsgBox(0,"Focused password field with result" & $CallResult)

猜你在找的Windows相关文章