Eu finalmente "resolvi" isso automatizando as caixas de diálogo do tsworkspace usando um script AutoITv3 . Eu preenchei os atributos employeeID com os nomes de usuário RemoteApp dos usuários e fiz o script consultar esse atributo, usando-o para preencher previamente a caixa de diálogo de segurança do feed da Web RemoteApp, bem como o UsernameHint valores de registro para o próprio cliente de RD. Assim, no melhor dos casos, o usuário precisaria apenas executar o executável e digitar sua senha em uma caixa de diálogo de autenticação preenchida com seu nome de usuário.
O script está abaixo. Por favor, note que as chamadas WinWait estão esperando por janelas com títulos específicos ou mensagens de texto para aparecer, você vai querer mudar isso de acordo com a localização dos seus clientes e versão do Windows.
#include <AD.au3>
Dim $WCXPath = "\fserver2\RemoteAppFeed$\rdcb.wcx"
Dim $FeedAddress = "rdcb.ad.contoso.com"
Dim $WizardWinHandle
Dim $SecurityWinHandle
Dim $CallResult
Dim $aProperties[1][2]
Dim $UserName
$UserName="AD\<YourADLogin>"
; Open Connection to the Active Directory
_AD_Open()
; Write UsernameHint values with the user's RD server authentication name
$aProperties = _AD_GetObjectProperties(@UserName, "employeeID")
;_ArrayDisplay($aProperties, "Active Directory Functions - Example 2 - Properties for user '" & @UserName & "'")
If IsArray($aProperties) Then
If UBound($aProperties,2)=2 and UBound($aProperties,1)=2 Then
If $aProperties[1][0]="employeeID" and StringLen($aProperties[1][1])>1 Then
$UserName = "CIT-AD\" & $aProperties[1][1]
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\rdfarm.ad.contoso.com", "UsernameHint", "REG_SZ", $UserName)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\ts13.ad.contoso.com", "UsernameHint", "REG_SZ", $UserName)
EndIf
EndIf
EndIf
Run ("C:\Windows\System32\xwizard.exe RunWizard /u {7940acf8-60ba-4213-a7c3-f3b400ee266d} /z" & $WCXPath)
$WizardWinHandle = WinWait("Neue Verbindung mit RemoteApp", $FeedAddress)
;MsgBox(0, "Debug", "RemoteApp Window appeared with handle " & $WizardWinHandle)
WinActivate($WizardWinHandle)
$CallResult = ControlClick($WizardWinHandle, "", "Button1")
;MsgBox(0, "Debug", "Clicked "Next" with result" & $CallResult)
$SecurityWinHandle = WinWait("Windows-Sicherheit")
;MsgBox(0, "Debug", "Windows Security Window appeared with handle " & $SecurityWinHandle)
WinActivate($SecurityWinHandle)
$CallResult = ControlSend($SecurityWinHandle, "", "Edit1", $UserName)
;MsgBox(0, "Debug", "Sent username data with result" & $CallResult)
$CallResult = ControlClick($SecurityWinHandle, "", "Button1")
;MsgBox(0, "Debug", "Clicked to remember credentials with result" & $CallResult)
$CallResult = ControlFocus($SecurityWinHandle, "", "Edit2")
;MsgBox(0, "Debug", "Focused password field with result" & $CallResult)