I am trying to put together a web page to show remote users which PC's are
available for RDP so they can use. The page work's fine except for when the
goes to the pc to pull the info on if anybody is logged in or not it seems
to have trouble. here is the blurb from the temp file that gets created on
the webserver.
"Error opening Terminal server Computer-01 Error [5]:Access is denied."
The webserver Anon account is using a Domain account that has full rights on
those boxes. Below is my webpage.
<HTML>
<HEAD>
<TITLE>Blade Availability.&n bsp; Please be Patient!</TITLE>
<SCRIPT LANGUAGE="VBScr ipt" runat="server">
Response.Buffer =True
Response.Expire s=-1
Server.ScriptTi meout= 600
On Error Resume Next
' This script will pull computers from a text file and give you feedback if
someone is logged in via local or RDP.
Dim fso, f, inputFile, strCompName, strUserName
'Text file has a list of PC's I want this script to run against
inputFile = "\\Servername\t ext\computers.t xt"
set fso = CreateObject("S cripting.FileSy stemObject")
set f = fso.OpenTextFil e(inputFile)
Do While f.AtEndOfLine <> True
strCompName = Trim(f.ReadLine )
If strCompName <> "" Then
strCompName = UCase(strCompNa me)
strUserName = GetUser(strComp Name)
If IsEmpty(strUser Name) Then
Response.Write strCompName & " ; Could not connect to computer " &
"<br>"
Response.Flush( )
ElseIf strUserName = "" Then
Response.Write strCompName & " ; No user is logged on " & "<a
href=""rdp.asp? hostname="&wks( r) &""">CLICK here to connect</a><br>"
Response.Flush( )
Else
Response.Write strCompName & " ; Logged on user name: " &
strUserName & "<a href=""rdp.asp? hostname="&wks( r) &""">CLICK here to
connect</a><br>"
Response.Flush( )
End If
End If
Loop
f.close
wscript.echo "end of file"
Function GetUser(sHost)
' Function will return logged in user name from QWINSTA.EXE
' regardless of it is a console or RDP user
' Windows XP only
'
' Return values:
' If input to function (host name) is empty, returns Empty
' If QWINSTA.EXE cannot connect to host, returns Empty
' If no user is listed by QWINSTA.EXE, returns ""
' If user is listed, returns user name
If sHost = "" Then
Exit Function '-----> return Empty
End if
Set oShell = CreateObject("W script.Shell")
Set oFS = CreateObject("S cripting.FileSy stemObject")
sTmpFile = oFS.GetSpecialF older(2).ShortP ath & "\" & oFS.GetTempName
response.write( sTmpFile)
'Run command and redirect stdout and stderr into temp file
oShell.Run "%ComSpec% /c %SystemRoot%\Sy stem32\QWINSTA. EXE /SERVER:" _
& sHost & " >" & sTmpFile & " 2>&1", 0, True
On Error Resume Next
'Open the temp file
Set oTF = oFS.OpenTextFil e(sTmpFile)
'Parse the file
' Read first line
sLine = oTF.ReadLine
If Err.Number <> 0 Then
' Something is wrong.
Exit Function '-----> return Empty
End If
On Error Goto 0
If Left(Trim(sLine ), 26) <> "SESSIONNAM E USERNAME" Then
' Something is wrong. Most likely is the content of the first line
' this: "Error opening Terminal server <host name>"
Exit Function '-----> return Empty
End If
' Read second line
sLine = oTF.ReadLine
'Close file
oTF.Close
'Delete it
oFS.DeleteFile sTmpFile
sChoppedLine = Mid(sLine, 20)
If Left(sChoppedLi ne, 1) = " " Then
' no user found
GetUser = ""
Else
' get the user name
GetUser = Split(sChoppedL ine)(0)
End If
End Function
</SCRIPT>
</BODY>
<body bgcolor="#EBF2F C">
<p> </p>
<p> </p>
<p align="center"> <font size="5">Remote Desktop Connections</font></p>
</HTML>
</SCRIPT>
</BODY>
</HTML>