Fix NERR_ServiceNotInstalled (0X00000888) on Windows Server
This error means a service you're trying to start isn't installed on your Windows Server. The fix is to install the missing service or point the command to an existing one.
Quick Answer
Run sc query | find /i "your_service_name" to check if the service exists. If it doesn't show up, you need to install the service or change the script to use a service that's actually installed.
What's This Error Really About?
This error code 0X00000888 maps to NERR_ServiceNotInstalled from the Network Errors (NERR) range. It's not a Windows system error; it's a NetAPI error. You'll usually hit this when you're running a batch file, a PowerShell script, or a scheduled task that tries to net start or net stop a service, but that service doesn't exist in the Service Control Manager (SCM) database on that particular machine.
I've seen this most often on Windows Server 2019 and 2022 when IT folks copy scripts from one server to another. The script references a service like Spooler or W3SVC, but the new server doesn't have that role installed. For example, if you migrate a web server script to a file server, it'll try to start the IIS Admin Service — which isn't installed there. Boom, error 0X00000888.
The real fix isn't about permissions or delays. It's about making sure the service name you're using matches a service that's actually installed.
Fix Steps: Make Sure the Service Exists
- Open Command Prompt as Admin. Press the Windows key, type
cmd, right-click Command Prompt, and pick "Run as administrator." You'll see a User Account Control prompt — click Yes. - Check if the service is installed. Run this command, replacing
YourServiceNamewith the exact service name from your error message:
If nothing comes back, the service isn't installed. If you see a line likesc query | find /i "YourServiceName"SERVICE_NAME: YourServiceName, the service exists but might be stopped or disabled. That's a different problem and a different error code. - If the service is missing, find out what it belongs to. Common services that trigger this error on servers:
W3SVC— World Wide Web Publishing Service (part of IIS)MSSQLSERVER— SQL ServerSpooler— Print SpoolerDNS— DNS Server service
- Install the missing role or feature. For example, if
W3SVCis missing, install IIS via Server Manager:- Open Server Manager
- Click "Add roles and features"
- Select your server
- Check "Web Server (IIS)" under Server Roles
- Click Next through the wizard and Install
- After the install finishes, the service will be available. Reboot if prompted.
- Now try your original command again. Run
net start W3SVC(or whatever service you need). If it was just a missing role, it'll start now. You should see "The World Wide Web Publishing Service service is starting" and then "started successfully."
Alternative Fixes If the Main One Fails
Fix 1: Change your script to use a service that's installed. If you can't install the missing role (maybe it's a policy thing or a licensing issue), edit your batch file or scheduled task to target a different service. For example, change net start W3SVC to net start LanmanServer if you just need any service to start. This isn't ideal — it bypasses the real problem — but it gets you unblocked fast.
Fix 2: The service name might be wrong. Some people confuse the display name with the service name. The net start command uses the short service name, not the friendly display name. For example, the Print Spooler's service name is Spooler, not "Print Spooler." Run sc query state= all to see all installed services with their exact names. Write down the correct name and update your script.
Fix 3: Use sc start instead of net start. The sc (Service Control) tool gives you a more descriptive error message. Instead of net start MissingService, run sc start MissingService. If the service doesn't exist, sc will say [SC] StartService FAILED 1060: The specified service does not exist as an installed service. That's the same problem, but now you see error 1060 which is more common in documentation. The fix is the same: install the service or change the name.
Fix 4: Check if the service is disabled. Run sc qc YourServiceName (only if it exists). If the START_TYPE is DISABLED (value 4), run sc config YourServiceName start= auto and then try starting it again. But remember — if sc query found nothing in step 2, this doesn't apply.
Prevention Tip
Before you run any script that uses net start or net stop on a new server, always run this check first:
sc query | find /i "ServiceName" || echo Service not foundI add that line to every batch file I write that touches services. It catches missing services before they throw 0X00000888 and kill the rest of the script. Also, always use the exact service name from sc query — never copy service names from a web forum without confirming they match your server's role.
Was this solution helpful?