Question : Windows 2008 TSE

My configuration: Windows 2008 SP2, AD + TSE

When I create a new user in AD and I include the user in the group Remote Desktop User I still cannot open a TSE session. When I give administrator rights to the user it works OK and I can open a TSE session.

I must have a rights problem wjth the TSE user configuration, It may come from the fact that my TSE is also a AD DC (I have 2 servers in my domain and need to have a backup DC in case of)



Answer : Windows 2008 TSE

I'm not sure how to get the above code working. This is code I use to access web pages. It's third or fourth generation and pretty robust. This is a complete code module.

' clsInternetConnection
'
' Class provides functionalty to read web pages.
'
' Implemented as a class module for use with any VB or VBA project.
'
' © 2008-2010 Kevin M. Jones

Option Explicit

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private Const INTERNET_FLAG_PRAGMA_NOCACHE = &H100
Private Const INTERNET_OPTION_RECEIVE_TIMEOUT As Long = 6

Private Const UserAgent = "VB"

Private mConnectionHandle As Long
Private mTimeoutSeconds As Long

Private Declare Function InternetCloseHandle Lib "wininet" ( _
     ByRef hInet As Long _
  ) As Long

Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" ( _
     ByVal sAgent As String, _
     ByVal lAccessType As Long, _
     ByVal sProxyName As String, _
     ByVal sProxyBypass As String, _
     ByVal lFlags As Long _
  ) As Long

Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" ( _
     ByVal hInternetSession As Long, _
     ByVal lpszUrl As String, _
     ByVal lpszHeaders As String, _
     ByVal dwHeadersLength As Long, _
     ByVal dwFlags As Long, _
     ByVal dwContext As Long _
) As Long

Private Declare Function InternetReadFile Lib "wininet" ( _
     ByVal hFile As Long, _
     ByVal sBuffer As String, _
     ByVal lNumBytesToRead As Long, _
     lNumberOfBytesRead As Long _
  ) As Integer
 
Private Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" ( _
     ByVal hInternet As Long, _
     ByVal dwOption As Long, _
     ByRef lpBuffer As Any, _
     ByVal dwBufferLength As Long _
  ) As Long

Private Sub Class_Initialize()

  mConnectionHandle = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  If mConnectionHandle = 0 Then
     MsgBox "Unable to open an Internet connection. The most likely cause is too many handles have been created."
  End If
  mTimeoutSeconds = 30

End Sub

Private Sub Class_Terminate()

  InternetCloseHandle mConnectionHandle
     
End Sub

Public Function GetWebPage( _
     ByVal URL As String, _
     Optional ByVal ProxyUserID As String, _
     Optional ByVal ProxyPassword As String, _
     Optional ByVal TimeoutSeconds As Long _
  ) As String

' Get a web page.
'
' Syntax
'
' GetWebPage(URL, [ProxyUserID], [ProxyPassword])
'
' URL - A complete URL to a web page.
'
' ProxyUserID - The user ID for the proxy server, if any. Optional. If omitted
'   then no proxy server is assumed.
'
' ProxyPassword - The password for the proxy server. Optional. Ignored if
'   ProxyUserID is omitted.
'
' TimeoutSeconds - The number of seconds to wait until timing out. Optional.
'   If omitted then 30 seconds is used.

  Dim ConnectionHandle As Long
  Dim URLHandle As Long
  Dim BytesRead As Long
  Dim Result As Boolean
  Dim InputBuffer As String * 10000
  Dim PageContent As String
  Dim SecurityData As String
 
   If Len(ProxyUserID) > 0 Then
     SecurityData = ProxyUserID
     If Len(ProxyPassword) > 0 Then
        SecurityData = SecurityData & ":" & ProxyPassword
     End If
     SecurityData = SecurityData & "@"
     URL = Replace(URL, "://", "://" & SecurityData)
  End If
 
   If TimeoutSeconds = 0 Then TimeoutSeconds = mTimeoutSeconds
 
   If mConnectionHandle <> 0 Then
     Result = InternetSetOption(mConnectionHandle, INTERNET_OPTION_RECEIVE_TIMEOUT, TimeoutSeconds * 1000, Len(TimeoutSeconds))
     URLHandle = InternetOpenUrl(mConnectionHandle, URL, vbNullString, 0, INTERNET_FLAG_RELOAD Or INTERNET_FLAG_PRAGMA_NOCACHE, 0)
     If URLHandle <> 0 Then
        Do
           InputBuffer = vbNullString
           Result = InternetReadFile(URLHandle, InputBuffer, Len(InputBuffer), BytesRead)
           PageContent = PageContent & Left(InputBuffer, BytesRead)
        Loop While BytesRead > 0
        InternetCloseHandle URLHandle
     End If
  End If
 
   GetWebPage = PageContent
 
End Function

Public Property Get ValidInternetConnection() As Boolean

  ValidInternetConnection = mConnectionHandle <> 0

End Property

Public Property Get TimeoutSeconds() As Long

  TimeoutSeconds = mTimeoutSeconds

End Property

Public Property Let TimeoutSeconds( _
     ByVal Value As Long _
  )

  mTimeoutSeconds = Value

End Property

Kevin
Random Solutions  
 
programming4us programming4us