Private Function GetRDSUsers(sComputerNameToQuery As String) As String
Dim scope As ManagementScope
Dim options As New ConnectionOptions
Dim objOS As ManagementObjectSearcher
'Dim sComputerNameToQuery As String = "crh16vrdpgate01"
Try
options.Username = "chnet\xsvcacct"
options.SecurePassword = ToSecureString("")
scope = New ManagementScope("\\" & sComputerNameToQuery & "\root\cimv2\TerminalServices", options)
'Console.WriteLine("-")
scope.Options.Authentication = 6
scope.Connect()
Catch
Return "ERROR"
End Try
Debug.Print("Connected..")
objOS = New ManagementObjectSearcher(scope, New ObjectQuery("SELECT * FROM Win32_TSGatewayConnection")) 'https://social.technet.microsoft.com/Forums/lync/en-US/85e0c2bf-abca-4cf9-9355-cb066344a7d5/cannot-access-namespace-terminalservices-remotely-access-denied?forum=winserverpowershell
Dim sTXT As String = ""
For Each objMgmt In objOS.Get
Try
Dim duration As TimeSpan '= TimeSpan.FromSeconds(funGrabBetween(objMgmt("IdleTime").ToString, "", ":"))
'duration = ManagementDateTimeConverter.ToTimeSpan(funGrabBetween(objMgmt("ConnectedTime"), "", "."))
Debug.Print(">> " & objMgmt("UserName").ToString) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
sTXT = sTXT & Replace(objMgmt("UserName").ToString, Environment.UserDomainName & "\", "") & ","
'sTXT += "" & "," & vbCrLf
' sTXT += "" & "," & vbCrLf
Debug.Print(">> " & funConvertToConnectiontime(objMgmt("ConnectedTime")))
sTXT = sTXT & funConvertToConnectiontime(objMgmt("ConnectedTime")) & ","
Debug.Print(" " & duration.ToString) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
Dim sIdleTime As String
duration = ManagementDateTimeConverter.ToTimeSpan(objMgmt("IdleTime").ToString) ' objMgmt("IdleTime").ToString '(duration.Days & ":" & duration.Hours & ":" & duration.Minutes & ":" & duration.Seconds & "s")
sIdleTime = ""
sIdleTime = duration.Days & ":" & duration.Hours & ":" & duration.Minutes ' & ":" & duration.Seconds & ""
'sIdleTime = duration.Minutes & ":" & duration.Seconds & ""
If sIdleTime = "0:0:0" Then sIdleTime = "."
Debug.Print(" " & sIdleTime) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
Debug.Print(" " & objMgmt("NumberOfKilobytesReceived").ToString) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
Debug.Print(" " & objMgmt("ClientAddress").ToString) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
sTXT = sTXT & objMgmt("ClientAddress").ToString & ","
Debug.Print(" " & objMgmt("ConnectedResource").ToString) 'https://docs.microsoft.com/en-us/windows/win32/termserv/win32-tsgatewayconnection
sTXT = sTXT & objMgmt("ConnectedResource").ToString & ","
sTXT = sTXT & sIdleTime & ","
Catch ex As Exception
Debug.Print("ex = " & ex.Message.ToString)
End Try
sTXT += "" & "," & vbCrLf
Next
Return sTXT
End Function
https://docs.microsoft.com/en-us/windows/win32/termserv/terminal-services-gateway-classes
Replace(sName, Environment.UserDomainName & "\", "")
.