Run application or script on Windows RDC connection
You can make a new scheduled task and define the trigger to "At the moment of a new connection to a user session"
To my knowledge Windows does not provide a built-in method for running a program or script on connection, only log on. You'll need to find a program that registers with Windows (using WTSRegisterSessionNotification) and listens for the WM_WTSSESSION_CHANGE message.
A program that does the above will receive notifications from Windows about user logons, logoffs, connections, disconnections, and all of the events needed to launch a script at connection as well as log on.
Off the top of my head I don't know of any applications (other than pcAnywhere) that can do this.
Use trigger "On connection to user session"
Note: I only noticed that the question is tagged "XP"/"Server2008". What's here may only work on Vista/2008R2 onwards.
Windows task scheduler has a predefined trigger for that. It is called On connection to user session
.
It also allows you to distinguish between users and between local or remote connections.
The default when creating this trigger: Any user
and Connection from remote computer
. This seems to be what you want, so you don't have to change that.
Screenshot here:
Source: Microsoft TechNet: Task Scheduler | Triggers (Archived here.)
Further reading
When you export this task and then look inside the file, you will see that this a trigger of type SessionStateChangeTrigger
:
There is in depth documentation on MSDN:
- MSDN:
SessionStateChangeTrigger object
(Archived here.) - MSDN:
SessionStateChangeTrigger.StateChange property
(Archived here.)