I can think of a couple of ways
low tech one master scenario
You could use the API to set the system queue to ZERO then switch it back, that coudl be scheduled with task scheduler (windows)
Better
if you have multiple masters you could have one manage the other's outage window (lets say on patch weekend)
install the client with API on agents and create DB aliases to the other master. We are heavy users of group variables.
I created a simple generic batch file then pass it
CD d:\tidal\scheduler\client\
set alias=%1
d:\tidal\scheduler\client\sacmd.exe qlimit -n %2 -l %3
for the Tidal job
JOB NAME System Queue
CMD
I call theh batch file (on a network location)
PARAMS
pass the parameters:
""
jobname = System Queue
master = your alias
limit = 0 or to set back to a value lets say 100
I can control environments this way in a flexible manner
I also can stop/start or check the status of the service with POWERSHELL
job Name TidalSAMaster
CMD POWERSHELL <--we install powershell 2.0 on all windows agents
PARAMS
\\\Stop_Remote_Services.ps1 -servername -service -Servicestartmode Manual
I create a generic script to stop and set the mode to manual but you coudl just do with CMD line
(we wanted to hold off on starting the service post pathing reboot)
sample Check the services
Get-Service -ComputerName -Name
scan output for "stopped"