Come eliminare un servizio in Windows 10 e precedenti

Ti sei imbattuto in una situazione in cui la disinstallazione di un software lascia le voci di servizio o driver nel registro e Windows tenta di caricarle ad ogni avvio, non riesce e registra l'errore nel registro eventi di sistema ad ogni avvio?

Questo post spiega come eliminare un servizio orfano in Windows 10, 8, 7 e Vista usando il registro, la riga di comando SC.exe o usando Autoruns. Prima di procedere ulteriormente, creare un punto di Ripristino configurazione di sistema e / o un backup del Registro di sistema completo.

Come eliminare un servizio in Windows?

Se si riscontra che non esistono dipendenti per un servizio, è possibile procedere all'eliminazione del servizio residuo o indesiderato in Windows utilizzando uno dei seguenti metodi.

Metodo 1: eliminare un servizio utilizzando il comando SC.EXE

Lo strumento da riga di comando SC in Windows può essere utilizzato per creare, modificare o eliminare i servizi. Per eliminare un servizio in Windows, utilizzare la seguente sintassi della riga di comando dal prompt dei comandi di admin:

 sc delete nome_servizio 

Dove nome_servizio si riferisce al nome breve o al nome della chiave del servizio, anziché al nome visualizzato. Per trovare il nome breve, aprire MMC servizi e fare doppio clic su un servizio.

  • Esempio 1: il nome breve per Aggiornamenti automatici è wuauserv e il nome visualizzato è "Aggiornamenti automatici".
  • Esempio 2: Google Update Service (gupdate) è il nome visualizzato e gupdate è il nome breve

Un altro modo per trovare il nome breve di un servizio è utilizzare questa riga di comando:

 sc getkeyname "nome visualizzato servizio" 

che in questo esempio è:

 sc getkeyname "Servizio Google Update (gupdate)" 

Una volta ottenuto il nome breve del servizio utilizzando uno dei metodi sopra indicati, utilizzare questo comando per eliminare il servizio:

 sc elimina test 

Vedrai l'output: [SC] DeleteService SUCCESS

Ciò elimina il servizio specificato (servizio "test" in questo esempio) dal computer.

Se il servizio è in esecuzione o un altro processo ha un handle aperto per il servizio, il servizio verrà semplicemente contrassegnato per l'eliminazione e rimosso al successivo riavvio.


Metodo 2: Elimina un servizio utilizzando Autoruns da Sysinternals di Windows

Autoruns, di Microsoft Windows Sysinternals, è uno strumento indispensabile che consente di gestire l'avvio, i servizi, i driver, i provider Winsock di Windows, i componenti aggiuntivi di Internet Explorer, le estensioni di Shell e molto altro.

  1. Scarica Autoruns ed eseguilo
  2. Dalla scheda Opzioni, selezionare Nascondi voci Microsoft, in modo che siano elencate solo le voci di terze parti.
  3. Premere F5 per aggiornare l'elenco.
  4. Fare clic sulla scheda Servizi, da cui è possibile eliminare i servizi indesiderati o rimanenti.

  5. Chiudi Autoruns.

Metodo 3: eliminare un servizio utilizzando l'editor del Registro di sistema

Per rimuovere manualmente un servizio dal registro di Windows, attenersi alla seguente procedura:

  1. Avviare Regedit.exe e accedere al seguente ramo:
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 

    Chiave del registro dei servizi.

    Ogni sottochiave sotto la chiave di registro sopra rappresenta un driver o un servizio. Il nome chiave è anche il nome breve del servizio. Inoltre, dovresti essere in grado di identificare facilmente la voce guardando i valori DisplayName e ImagePath nel riquadro di destra nell'editor del Registro di sistema.

  2. Trova la voce che desideri eliminare.
  3. Eseguire il backup della chiave appropriata esportandola in un file .reg.
  4. Una volta esportato, fai clic con il pulsante destro del mouse sulla chiave e scegli Elimina.
  5. Chiudi l'editor del registro.

Metodo 4: eliminare un servizio tramite PowerShell

Dalla finestra dell'amministratore di PowerShell, è possibile utilizzare i comandi seguenti per eliminare un servizio.

$config[ads_text6] not found
 $ service = Get-WmiObject -Class Win32_Service -Filter "Name = 'servicename'" $ service.delete () 

ReturnValue di 0 indica che l'operazione è stata eseguita correttamente. Il servizio viene eliminato e ora verrà più visualizzato nella MMC Servizi.

Per conoscere il significato di un valore restituito, consulta l'articolo Microsoft Metodo di eliminazione della classe Win32_Service

Oppure puoi eseguire il comando sc.exe in PowerShell. Funzionerebbe anche quello. Ma è necessario utilizzare l'estensione del file ( sc.exe ) durante l'esecuzione in PowerShell. Questo perché il comando SC (senza menzionare l'estensione .exe ) verrà interpretato come Set-Content che è un cmdlet incorporato in PowerShell.

È ancora più semplice se hai PowerShell 6.0 installato. In PowerShell 6 e versioni successive, è possibile utilizzare questa sintassi per rimuovere un servizio:

 Remove-Service -Name ServiceName 

L'esecuzione del comando Remove-Service nelle versioni precedenti di PowerShell (<6.0) mostra l'errore: il termine 'Remove-Service' non è riconosciuto come nome di un cmdlet, funzione, file di script o programma eseguibile.

Visualizza dipendenti di un servizio

Quando si rimuove un servizio, altri che dipendono dal servizio non si avviano, restituendo l'errore “ Errore di sistema 1075. Il servizio di dipendenza non esiste o è stato contrassegnato per l'eliminazione. ". Quando una voce del driver o del servizio è rimasta nel registro ma mancano i file corrispondenti, il registro eventi registra una voce con ID:7000 ad ogni avvio.

Nome registro: Sistema

Fonte: Service Control Manager

Data:

ID evento: 7000

Livello: errore

Descrizione:

Impossibile avviare il servizio DgiVecp a causa del seguente errore:

Il sistema non trova il file specificato.

Quindi, è consigliabile prima verificare se ci sono persone a carico. È possibile verificare che in MMC servizi facendo doppio clic sull'elemento che si intende eliminare e facendo clic sulla scheda Dipendenze. L'elenco dei componenti che dipendono da quel servizio è mostrato di seguito. Ecco un esempio in cui "Fax" dipende da "Print Spooler" per iniziare.

Mentre la maggior parte dei servizi di terze parti non ha dipendenti, alcuni lo fanno. È sempre consigliabile dare un'occhiata a questa scheda prima di cancellare l'elemento.

Un altro modo per verificare le persone a carico è eseguire questo comando da una finestra del prompt dei comandi. (esempio, Spooler di stampa )

 sc enumdepend spooler 

Le informazioni contenute in questo articolo si applicano a tutte le versioni di Windows, incluso Windows 10.

Articoli Correlati