There may be several causes which lead to the service being stuck in “marked for deletion”.
- SysInternals’ Process Explorer is opened. Closing it should lead to automatic removal of the service.
- Task Manager is opened.
- Microsoft Management Console (MMC) is opened. To ensure all instances are closed, run
taskkill /F /IM mmc.exe
. - Services console is opened. This is the same as the previous point, since Services console is hosted by MMC.
- Event Viewer is opened. Again, this is the same as the third point.
- The key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{service name} exists.
- Someone else is logged into the server and has one of the previously mentioned applications opened.
- An instance of Visual Studio used to debug the service is open.