Har du stött på en situation där avinstallation av programvara lämnar dess tjänst eller drivrutinposter i registret och Windows försöker ladda dem vid varje start, misslyckas och loggar felet till systemhändelseloggen vid varje börja?
Den här artikeln berättar hur du tar bort en föräldralös tjänst i Windows 10 (och tidigare) med hjälp av registret, kommandoraden SC.exe, PowerShell eller Autoruns. Innan du går vidare, skapa en Systemåterställningspunkt och ta en fullständig säkerhetskopiering av registret.
Om du hittar det inga anhöriga finns för en tjänst, kan du ta bort den överblivna eller oönskade tjänsten i Windows med någon av följande metoder.
Innehåll
-
Ta bort en tjänst i Windows
- Metod 1: Använda kommandot SC.EXE
- Metod 2: Använda autoruns
- Metod 3: Använda Registereditorn
- Metod 4: Använd PowerShell
- Metod 5: Använd Process Hacker
- INFO: Visa beroende av en tjänst
Hur tar man bort en tjänst i Windows?
Du kan ta bort en tjänst med hjälp av den inbyggda kommandoraden SC.exe, Registereditorn, PowerShell eller ett verktyg som Autoruns. Följ en av dessa metoder:
Använder kommandot SC
De SC.EXE
kommandoradsverktyget i Windows kan användas för att skapa, redigera eller ta bort tjänster. För att ta bort en tjänst i Windows, använd följande kommandoradssyntax från admin kommandotolk:
sc ta bort tjänstnamn
Var Service namn hänvisar till tjänstens korta namn istället för dess visningsnamn. För att hitta det korta namnet, öppna Services MMC och dubbelklicka på en tjänst.
- Exempel 1: Google Update Service (
gupdate
) är visningsnamnet, ochgupdate
är det korta namnet. - Exempel 2: Dell SupportAssist (
SupportAssistAgent
) är visningsnamnet, ochSupportAssistAgent
är det korta namnet.
Ett annat sätt att hitta det korta namnet på en tjänst är genom att använda den här kommandoraden:
sc fråga typ= tjänst | Mer
Ovanstående kommando listar alla tjänster tillsammans med tjänstens (korta) namn och visningsnamnet.
Eller, om du känner till visningsnamnet, kan du hitta tjänstens namn med det här kommandot:
sc getkeyname "tjänstens visningsnamn"
som i detta exempel är:
sc getkeyname "Google Update Service (gupdate)"
När tjänstens kortnamn erhålls med någon av ovanstående metoder, använd det här kommandot för att ta bort tjänsten:
sc ta bort test
Du kommer att se utdata: [SC] DeleteService FRAMGÅNG
Detta tar bort den angivna tjänsten ("testtjänsten" i det här exemplet) från datorn.
Om tjänsten körs eller en annan process har en öppet handtag till tjänsten kommer den att markeras för radering och tas bort vid nästa omstart.
Kan du inte ta bort en tjänst?
Om du får följande felmeddelande när du tar bort tjänsten kan det också vara möjligt att du försöker ta bort en tjänst från en vanlig kommandotolk istället för en admin kommandotolk.
Om samma fel inträffar i en admin-kommandotolk betyder det att det för närvarande inloggade användarkontot inte har full kontrollbehörighet för den tjänsten.
[SC] OpenService FAILED 5: Åtkomst nekad.
För att lösa det här felet när du tar bort en tjänst måste du ändra tjänstens behörigheter först. Alternativt kan du använda SYSTEMET eller Pålitlig installerare konto för att radera tjänsten.
Använda Autoruns från Windows Sysinternals
Autoruns, från Microsoft Windows Sysinternals, är en måste ha verktyg som hjälper dig att hantera Windows-start, tjänster, drivrutiner, Winsock-leverantörer, Internet Explorer-tillägg, Shell-tillägg, etc.
- Ladda ner Autoruns och kör det
- På fliken Alternativ, markera Dölj Microsoft-poster så att endast tredje parts poster listas.
- Tryck F5 för att uppdatera listan.
- Klicka på Tjänster fliken för att ta bort de tjänster som är oönskade eller överblivna.
- Stäng Autoruns.
Använda Registereditorn
För att manuellt ta bort en tjänst direkt via Windows-registret, använd dessa steg:
- Start
Regedit.exe
och navigera till följande gren:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Varje undernyckel under ovanstående registernyckel representerar en drivrutin eller en tjänst. Nyckelnamnet är detsamma som kort namn av tjänsten. Dessutom bör du lätt kunna identifiera posten genom att titta på Visningsnamn och ImagePath värden i den högra rutan i Registereditorn.
- Hitta posten du vill ta bort.
- Säkerhetskopiera lämplig nyckel genom att exportera den till en .reg-fil.
- När du har exporterat högerklickar du på nyckeln och väljer Ta bort.
- Avsluta Registereditorn.
Använder PowerShell
Från PowerShell-administratörsfönstret kan du använda följande kommandon för att ta bort en tjänst.
$service = Get-WmiObject -Class Win32_Service -Filter "Name='servicename'" $service.delete()
Returvärde av 0
indikerar att operationen lyckades. Tjänsten raderas och kommer inte längre att visas i Tjänster MMC.
För att veta innebörden av ett returvärde, kolla in Microsoft-artikeln Ta bort metod för Win32_Service-klassen
sc.exe
) när du kör den i PowerShell. Detta beror på att kommandot SC
(utan att nämna förlängningen .exe
) kommer att tolkas som Set-Content
som är en inbyggd cmdlet i PowerShell.Det är ännu enklare om du har PowerShell 6.0 installerat. I PowerShell 6 och högre kan du använda denna syntax för att ta bort en tjänst:
Remove-Service -Name ServiceName
Kör Ta bort-tjänst
kommandot i äldre versioner av PowerShell (<6.0) visar felet: Termen "Remove-Service" känns inte igen som namnet på en cmdlet, funktion, skriptfil eller driftbart program.
Använder Process Hacker
Process Hacker är ett bra processhanteringsverktyg som till utseendet liknar Microsofts Process Explorer. Med Process Hacker kan du enkelt radera en tjänst via högerklicksmenyn.
Starta Process Hacker som administratör. Växla till fliken Tjänster, högerklicka på tjänsten du vill ta bort och klicka på Ta bort.
(Som en sidoanteckning kan du också konfigurera tjänstebehörigheter med Process Hacker.)
Ladda ner Process Hacker från https://processhacker.sourceforge.io/
Visa beroende av en tjänst
När du tar bort en tjänst kommer andra som är beroende av tjänsten inte att starta, vilket returnerar felet "Systemfel 1075 har inträffat. Beroendetjänsten finns inte eller har markerats för radering.”. När en förare eller tjänst finns kvar i registret, men motsvarande filer saknas, registrerar händelseloggen en post med ID: 7000
vid varje start.
Loggnamn: System. Källa: Service Control Manager. Datum: Event ID: 7000. Nivå: Fel. Beskrivning: DgiVecp-tjänsten kunde inte starta på grund av följande fel:Systemet kan icke finna den specificerade filen.
Så det är tillrådligt att först kontrollera om det finns några anhöriga. Du kan kontrollera det i Services MMC genom att dubbelklicka på objektet du ska ta bort och klicka på fliken Beroenden. Listan över komponenter som är beroende av den tjänsten visas nedan. Här är ett exempel där "Fax" beror på "Print Spooler" för att starta.
Medan de flesta tredjepartstjänster inte har några anhöriga, har vissa det. Det är alltid tillrådligt att ta en titt på den här fliken innan du rensar objektet.
Ett annat sätt att verifiera anhöriga är att köra det här kommandot från ett kommandotolksfönster. (exempel, Utskriftshanterare)
sc enumdepend spooler
Informationen i den här artikeln gäller alla versioner av Windows, inklusive Windows 10.
En liten begäran: Om du gillade det här inlägget, vänligen dela detta?
En "liten" andel från dig skulle verkligen hjälpa mycket med den här bloggens tillväxt. Några bra förslag:- Fäst det!
- Dela den till din favoritblogg + Facebook, Reddit
- Tweet det!