This is very frustrating when this happens. I had to fix an environment where somebody had not assigned the correct permissions initially and had caused all sorts of issues.
In this instance, the only way I could get the service to change to a status of "stop" was to use PowerShell.
The command is as follows:
Find the GUID of the Profile Synchronization Service application using :
get-spserviceinstance .
It should show the UPS in a status of ‘provisioning’.
Next, type in:
stop-spserviceinstance [GUID] to stop the faulty service.
In this instance, the only way I could get the service to change to a status of "stop" was to use PowerShell.
The command is as follows:
Find the GUID of the Profile Synchronization Service application using :
get-spserviceinstance .
It should show the UPS in a status of ‘provisioning’.
Next, type in:
stop-spserviceinstance [GUID] to stop the faulty service.