Encountering the [SC] OpenService FAILED 1060: The specified service does not exist as an installed service message on Windows Server 2016 usually happens when a script, batch file, or administrative tool tries to query, start, or stop a Windows service that isn't actually registered in the Service Control Manager (SCM) database. The command line utility sc.exe throws this error when the target service name doesn't match any valid registry key under the system's control set, or when an uninstallation script left behind orphan references.
Fixing this issue requires verifying the exact service short name, checking the system registry for leftover configuration keys, and updating management scripts to account for missing service dependencies. Whether you're running automated deployment scripts or managing a legacy application backend, resolving error 1060 restores predictability to your server environments.
Understanding Service Control Error 1060
The Service Control Manager maintains a record of all installed services and drivers in the Windows Registry. When you execute a command like sc query servicename or sc config servicename start= auto, Windows queries HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. If the requested service key doesn't exist, the system returns error 1060.
This discrepancy typically stems from three common scenarios. First, a third-party application or software update script references a service that was never installed or was partially removed. Second, you are using the display name of the service instead of its actual internal service name (registry key name). Third, a previous application uninstallation failed halfway through, leaving broken scripts that try to interact with non-existent components.
Step 1: Verify the Exact Service Name
Administrators frequently mix up a service's Display Name with its Service Name (the registry key identifier). For example, the display name might read "World Wide Web Publishing Service", while the actual service name is W3SVC.
To find the correct internal name, open an elevated PowerShell session or Command Prompt and list the active services:
sc queryex type= service state= all
Alternatively, launch the graphical services management console (services.msc), locate the target service, right-click it, and open Properties. Look at the Service name field at the top of the General tab. Always use this exact string in your sc.exe commands. If the service isn't listed there at all, it's genuinely missing from the server, which explains why the 1060 error occurs.
Step 2: Clean Up Orphaned Registry Entries
If a script attempts to modify a service that you've already uninstalled, the error indicates that leftover configuration fragments might still be lingering or that the automation tool is out of sync. You can inspect the registry directly to verify if an entry exists or needs purging.
- Press
Windows Key + R, typeregedit, and press Enter. - Navigate to the following path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services - Scroll through the keys or use
Ctrl + Fto search for the specific service name causing the failure.
If you find a leftover key for a service that has been uninstalled, exporting a backup of the registry branch and then deleting the orphaned key will stop scripts from throwing error 1060 when they query it.
Step 3: Fix Scripts and Automation Dependencies
When error 1060 pops up during automated deployments or startup routines, the underlying script needs conditional logic. Instead of blindly executing control commands, a robust script should check for the service's existence first.
Modify your batch files or PowerShell scripts to verify the service before interacting with it:
if (Get-Service -Name "YourServiceName" -ErrorAction SilentlyContinue) {
Set-Service -Name "YourServiceName" -StartupType Automatic
Start-Service -Name "YourServiceName"
} else {
Write-Host "Service not found, skipping configuration."
}
This approach prevents error outputs from cluttering your task logs and stops automated deployment pipelines from failing unexpectedly on Windows Server 2016 nodes. You can review official deployment syntax guidelines via Microsoft Learn to ensure your automation adheres to best practices.
Common Mistakes to Avoid
Administrators troubleshooting error 1060 often waste time running system file checkers like sfc /scannow or deployment image servicing tools (DISM). While these tools are essential for fixing corrupted operating system files, they won't resolve error 1060 unless an essential native Windows driver or core service file is genuinely missing from the WinSxS store.
Another frequent mistake is editing the wrong control set in the registry. Always stick to CurrentControlSet, as modifications to ControlSet001 or ControlSet002 directly affect how Windows boots and manages hardware profiles. For deeper architecture insights on how Windows handles system states, consult the Microsoft documentation portal.
Frequently Asked Questions
Does error 1060 mean my Windows Server 2016 installation is corrupted?
No. In most cases, error 1060 simply means a command-line utility or script referenced a service name that doesn't exist on that specific machine. It's typically a configuration or script mismatch rather than system corruption.
Can I recreate a missing service manually?
Yes, if you know the executable path and parameters, you can recreate the service definition using the create syntax: sc create "ServiceName" binpath= "C:\Path\To\Service.exe". However, ensure the binary file is valid and designed to run as a Windows service.
Why does a script work on one server but throw error 1060 on another?
This discrepancy usually happens due to environment drift. The target server may lack a specific software component, optional feature, or third-party application that installed the service on your primary testing server.
How do I handle error 1060 during software uninstalls?
If an uninstaller fails and leaves behind registry hooks that trigger error 1060, you can manually clean the Services registry hive or use administrative management utilities like Sysinternals Autoruns to track down and clear stubborn startup references.