Windows Server 2012 Essentials : After Transmog SILSVC Error
May 2, 2013 5 Comments
Back in November, a chap in the Forum had dipped his toe into the world of Transmogging, and encountered an error that was being thrown up in the logs after the process had completed.
The SILSVC should be started automatically but it is stopped.
I researched the issue at the time and also raised a bug, which was is still open. I was reminded about the issue again today so i decided to blog the solution as searching for the forum post took too long.
When booting up your computer after a Transmog you will see the following error in the System Log.
The service should be removed as part of the Transmog process, that is, the process that removes the 25 User limit inherent in Server 2012 Essentials. Unfortunately it only appears to remove the files associated with the service, and not clean up the registry.
If you take a look in the Services console, you will see the SILSVC and notice that there is a failure in the description.
The fix for this is made slightly more complex because when you try to access the registry section for this service, you are presented with an Access Denied message.
This leaves us with a couple of options, one being attempting to remove the registry key in safe mode, however this also does not allow access to the SILSVC registry key. So, really what i meant was one option.
The solution i used was to boot to the installation media, and use the repair option.
You need to chose the Troubleshoot option, then chose the CMD Prompt.
In the CMD, we can enter the Registry Editor by typing regedt32
Now we need to load the Registry Hive from the WSE Server.
Expand Computer, then select ‘HKEY_LOCAL_MACHINE’
Now click on File, and select ‘Load Hive’
We can now browse for the registry of our Essentials Server.
You can type in the path, or browse the directories, the path you want to go to is D:\Windows\System32\config
The file you want to load is called ‘SYSTEM’
You will then need to enter a name to identify this in the Registry Editor, i am just calling mine Essentials Server.
You can then browse through this exactly as you would for any other Registry edit but as this system is not booted into Windows we will want to look for CurrentControlSet1 (and you can also edit 2 if you want to)
Inside CCS1 look for Services, and inside Services, look for SILSVC. You can see now that we have full access to read this key, and work with it. Now we can delete it.
As i said you can also repeat this for CCS2 if you want to.
Now we can close down Registry Editor and type Exit to go back to Windows.
This time on boot up we should not see any errors relating to SILSVC. We can also confirm this service is now no longer present in the registry.
Looking through the registry at HKLM\System\CurrentControlSet\Services\ I could not see anything called AFD. I switched over to my Hyper-V server which has an XP Client running for reference, sure enough on this box there was indeed an AFD service at that location.
Much easier to just take ownership of the silsvc key in ControlSet1 and ControlSet2 and then delete the key and reboot.
Worked like a charm. Thank you John C!!
Hi Robert, in my case I couldn’t GET RID of the service that was running on my Hyper-V – officially allowed and licensed under 2012 R2 Essentials. But the workaround was to take ownership of the silsvc.exe file, add full rights to admin, rename the file and then kill the running process (without renaming it restarts immediately after kill). From this moment on I could easily set the service as disabled under services.msc. In this case the alert “The SILSVC should be started automatically” should be gone as well, I presume. Advantage: you wouldn’t have had to restart a productive server.
I was able to take the ownership of the registry key, add the administrator user and grant full access, then delete the key from registry while the server was fully running. Just after the first click on the key folder and closing the error message, the key folder was left selected thus letting me right-click on its permissions.