Location: Symbol Reference > Files > JwsclTerminalServer.pas
JWSCL Documentation
ContentsIndexHome
PreviousUpNext
JwsclTerminalServer.pas

Project JEDI Windows Security Code Library (JWSCL) 

This unit provides access to Terminal Server api functions through it's key object TJwTerminalServer

The Original Code is JwsclTerminalServer.pas. 

The Initial Developer of the Original Code is Remko Weijnen. Portions created by Remko Weijnen are Copyright (C) Remko Weijnen. All rights reserved. 

The central object of the JwsclTerminalServer unit is the TJwTerminalServer object. It represents a Terminal Server, the connection to this server and holds the session- and processlist. 

Some Key functions of TJwTerminalServer are: 

sessions into a TJwSessionList which can be accessed by the Sessions property. processes into a TJwProcessList which can be accessed by the Processes property. domain. Terminal Server. 

TJwTerminalServer also offers Events to monitor Terminal Server activity such as OnSessionConnect, OnSessionCreate, OnSessionLogon and OnSessionLogoff. 

A unique feature of TJwTerminalServer is that it's able to return detailled information about Terminal Server, Sessions and Processes that is not available using the normal Terminal Server API's or Microsoft Tools! This includes detailled process memory usage information and extended session information such as ShadowMode, ShadowState and Remote Address. 

The schema belows shows the relations between TJwTerminalServer, the TJwWTSSessionList with TJwWTSSessions and the TJwWTSProcessList with TjwWTSSessions. 

 

Remko Weijnen

 
Name 
Description 
 
This class is used by TJwWTSProcessList to provide extended enumeration of processes using Delphi 2005 and newer "for in" syntax. 
 
This class is used by TJwWTSSessionList to provide extended enumeration of session using Delphi 2005 and newer "for in" syntax. 
 
AbstractTJwTerminalServer is the central object of JwsclTerminalServer and holds the session- and processlist.
TJwTerminalServer offers connection to a Terminal Server which you can specify with the Server property. Key functions of TJwTerminalServer are:
TJwSessionList which can be accessed by the Sessions property. TJwProcessList which can be accessed by the Processes property. Terminal Server.
TJwTerminalServer also offers Events to monitor Terminal Server activity such as OnSessionConnect, OnSessionCreate... more 
 
TJwTerminalServerList is a List of TJwTerminalServer Objects.
Each item in the list points to a TJwTerminalServer object that can be queried and manipulated. The list can be filled by adding TJwTerminalServer instances. 
 
TJwWTSEnumServersThread is a Thread that enumerates all Terminal Server in the specified domain.
The Enumeration is done from a thread because it can take some time to enumerate all server, especially over a slow WAN connection.
The thread is created by calling the EnumerateServers procedure from a TJwTerminalServer instance. Although allowed you normally don't create a TJwWTSEnumServersThread manually.
Enumerated servers are returned by firing the OnServerEnumerated Event from the parent TJwTerminalServer instance.
A TJwWTSEnumServersThread is owned by a TJwTerminalServer instance. 
 
The TJwWTSEventThread Thread waits for Terminal Server Events and notifies the caller by firing Events.
It's not necessary to manually create an TJwWTSEventThread Thread because TJwTerminalServer does this automatically after a successfull call to the EnumerateSessions function.
TJwWTSEventThread is Owned by a TJwTerminalServer instance 
 
TJwWTSProcess is the class that encapsulates a process that is running on a Terminal Server.
A process is uniquely identified by the Process Id (PID) in combination with it's Creation Time (the OS reused PID's).
A TJwWTSProcess is owned by a TJwWTSProcessList
 
TJwWTSProcessList is a List of all Processes running on the Terminal Server and their properties
Each item in the list points to a TJwWTSProcess object that can be queried and manipulated. The list is filled by calling the EnumerateProcesses function of the owning TJwTerminalServer instance. 
 
TJwWTSSession is a Class that encapsulates a Terminal Server session and it's properties
A session is uniquely identified with a SessionID, this is a number between 0 and 65535.
A TJwWTSSession is owned by a JTwWTSSessionList. 
 
TJwWTSSessionList is a List of all Sessions running on the Terminal Server and their properties
Each item in the list points to a TJwWTSSession object that can be queried and manipulated. The list is filled by calling the EnumerateSessions function of the owning TJwTerminalServer instance. 
 
TJwWTSSessionShadow class gives access to the ShadowState and Shadowmode of a session. 
 
This is class TJwWTSSessionStatistics. 
 
Name 
Description 
 
TJwShadowMode indicates the Shadow Permissions of a session 
 
TJwShadowState indicates the Shadow State of a session 
 
Name 
Description 
 
The CachedUsername record is use internally in the CachedGetUserFromSessionId function. 
Name 
Description 
PJwTerminalServer is a pointer to a TJwTerminalServer instance 
PJwTerminalServerList is a pointer to a TJwTerminalServerList 
array of TWtsProcessInfoA 
array of TWtsProcessInfoW 
PJwWTSProcessList is a pointer to a TJwWTSProcessList 
array of TWtsServerInfoA 
array of TWtsServerInfoW 
PJwWTSSession is a pointer to a TJwWTSSession 
array of TWtsSessionInfoA 
array of TWtsSessionInfoW 
PJwWTSSessionList is a pointer to a TJwWTSSessionList 
TJwOnProcessFound is called by EnumerateProcesses everytime a process is enumerated.  
This is type TJwWTSProcessInfoAArray. 
This is type TJwWTSProcessInfoWArray. 
This is type TJwWtsServerInfoAArray. 
This is type TJwWtsServerInfoWArray. 
This is type TJwWTSSessionInfoAArray. 
This is type TJwWTSSessionInfoWArray. 
License

The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ 

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. 

Alternatively, the contents of this file may be used under the terms of the GNU Lesser General Public License (the "LGPL License"), in which case the provisions of the LGPL License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the LGPL License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the LGPL License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the LGPL License. 

For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html

Copyright (c) 2010. All rights reserved.
This help was created by Doc-O-Matic sponsored by toolsfactory software inc.
What do you think about this topic? Send feedback!