During a recent Exchange 2010 SP3 upgrade (direct from 2010 to SP3, no SP1 or SP2 incremental upgrade), the upgrade failed and all my Exchange services were set to Disabled.
Long story short: during the upgrade, each role disables all the Exchange Services during the upgrade and cannot start them up again after the role upgrade to continue.
At first I manually set all the Exchange services back to automatic and tried the upgrade again. It still failed.
Then I manually set the services to manual after the first role set them to Disabled. It worked, until the next role set them back to Disabled.
Instead of manually setting the services after each role upgrade, I decided to use powershell. I monitored the services, and when I saw the services become disabled, I ran the following Powershell command:
Get-Service MSExchange* | Set-Service -Startuptype manual
Once the upgrade successfully completes, I ran the same command, but this time set the services to Automatic:
Get-Service MSExchange* | Set-Service -Startuptype automatic