A common approach to prevent users from logging on to a Citrix server is to uncheck the “Enable logons to this server” checkbox. You could do this the evening before maintenance is planned, and then after a server reboot no users will be connected anymore, so you can start the server maintenance without any problem. (Citrix Presentation Server 4.0 shown below)
You may run into a problem when you use this way of working: it not only disables ICA connections, but also RDP connections !
A more elegant solution is to configure “Load Evaluators”; these allow for scheduling without loosing the RDP connection possibilities.
Rightclick “Load Evaluators”, and select “New Load Evaluator”.
Give it a name (for example “Only RDP”, “Maintenance”, …), and add Scheduling.
Set the “Times of Day” for all days/times during which ICA and RDP are allowed.
Now just remove the “Times of Day” (or modify the time) to allow maintenance.
Rightclick the server where maintenance is planned, and select “Load Manage Server”.
Now just select the “Load Evaluator” you have created for maintenance.
After the maintenance, set the “Load Manager Server” again to the standard Load Evaluator (for example “Default”).