Kako prisilno končati postopek obesljene storitve v operacijskem sistemu Windows?

Kako zaključiti postopek storitve Windows, ki je obtičal v statusu zaustavitve? Mislim, da se je večina skrbnikov sistema Windows srečala s situacijami, ko se ob poskusu zaustavitve (ponovnega zagona) storitve iz grafičnega vmesnika konzole za upravljanje storitev (Services.msc) storitev zmrzne in visi v stanju Ustavitev. Po tem ne morete ustaviti storitve v konzoli, ker gumbi za storitvene akcije postanejo nedosegljivi. Najlažji način je ponovni zagon strežnika, vendar to ni vedno veljavno. Razmislite o alternativnem načinu storitev izklopa ali obdelati brez potrebe po ponovnem zagonu.

Če se v 30 sekundah po poskusu storitve ne ustavi, Windows prikaže sporočilo:

Storitve xxxxxxx Windows v lokalnem računalniku ni bilo mogoče ustaviti.
Napaka 1053. Storitev ni mogla ustaviti storitve xxxxxx v lokalnem računalniku
Napaka 1053: Služba se ni odzvala pravočasno.

Ko poskušate ustaviti takšno storitev z ukazom: net stop wuauserv, se prikaže sporočilo:

Storitev se začenja ali ustavi. Poskusite znova.

Vsebina:

  • Zaključek storitve obešanja s programom TaskKill
  • Prisilno zaustavitev obešene storitve iz PowerShell-a
  • Analiza obesnih procesov z uporabo Resmona
  • Raziskovalec procesov: konča obešen postopek iz sistema SYSTEM

Zaključek storitve obešanja s programom TaskKill

Najlažji način za zaključek obešene storitve je uporaba pripomočka opravilna naloga. Najprej morate določiti PID (identifikator procesa) naše storitve. Kot primer vzemite storitev Windows Update, njeno sistemsko ime wuauserv (ime je mogoče najti v lastnostih storitev na konzoli services.msc).

Dokaj pogosto se ta težava zgodi pri storitvi Windows Modules Installer, ko se strežnik znova zažene, zlasti po namestitvi posodobitev na Windows Server 2012 R2 / 2008 R2.Je pomembno. Bodite previdni. Prisilni odstop kritičnega postopka Windows storitev lahko privede do ponovnega zagona BSOD ali sistema.

V ukazni vrstici s skrbniškimi pravicami (to je pomembno, sicer bo napaka zavrnjena)
sc queryex wuauserv

V tem primeru je procesni PID 816.

Da bi prisilili, da prekinete obešen postopek s PID 816:

opravilno opravilo / PID 816 / F

USPEH: Postopek s PID 816 je končan.

Ta ukaz prisili, da storitev preneha. V prihodnosti se lahko vrnete na konzolo za upravljanje storitev in ročno zaženete storitev (ali jo v celoti izbrišete, če ni potrebna).

Glavo strehe obesljene storitve je mogoče izvesti bolj elegantno, ne da bi morali ročno določiti PID postopka. Pripomoček taskkill ima možnost / FI, ki omogoča uporabo filtra za izbiro potrebnih storitev ali procesov. Z ukazom lahko ustavite določeno storitev:

TASKKILL / F / FI "STORITVE eq wuauserv"

Ali pa ime storitve sploh izpustite, vse storitve prekinete v zamrznjenem stanju z ukazom:

taskkill / F / FI „status eq se ne odziva“

Po tem naj bi se storitev, zastavljena v stanju Zaustavitve, ustavila.

Prisilno zaustavitev obešene storitve iz PowerShell-a

PowerShell lahko uporabite tudi za zaustavitev servisa. Z naslednjim ukazom lahko dobite seznam storitev v stanju ustavitve:

Get-WmiObject -Class win32_service | Kjer-objekt $ _. Stanje -eq 'nehaj čakati'

Cmdlet bo pomagal dokončati postopek za vse najdene storitve. Nehaj-Proces. S kombinacijo obeh operacij v zanki dobimo skript, ki samodejno prekine vse procese zaustavljenih storitev v sistemu:

$ Services = Get-WmiObject -Class win32_service -Filter "state = 'Nehaj čakati'"
če ($ Storitve)
foreach ($ storitev v $ Services)
poskusi
Stop-Process -Id $ service.processid -Force -PassThru -ErrorAction Stop

ujeti
Pisanje-opozorilo-sporočilo "Napaka. Podrobnosti o napaki: $ _. Izjema. Sporočilo."



drugače
Izpis "Ni storitev s" Stopping'.status "

Analiza obesnih procesov z uporabo Resmona

Postopek, zaradi katerega je storitev zamrznjena, lahko prepoznate z uporabo nadzornika reson virov.

  1. V oknu Nadzornik virov pojdite na zavihek CPU (CPU) in poiščite postopek obešene storitve;
  2. Izberite element Analiza verige čaka (Analizirajte Počakaj Veriga);
  3. V novem oknu boste najverjetneje videli, da vas čaka drug postopek. Izpolnite ga. Če čakate na sistemski sistem svchost.exe, vam ga ni treba končati. Poskusite analizirati čakalno verigo za ta postopek. Poiščite PID postopka, ki ga čaka vaš svchost.exe, in ga zaključite.

Raziskovalec procesov: konča obešen postopek iz sistema SYSTEM

Nekaterih procesov, ki se sprožijo pod sistemom SYSTEM, tudi lokalni skrbnik strežnika ne more končati. Dejstvo je, da preprosto nima pravic do določenih procesov ali storitev. Če želite dokončati tak postopek (storitve), morate skrbnikom lokalne skupine dati pravice do storitve (procesa) in jih nato dokončati. Da bi to naredili, potrebujemo dva pripomočka: psexec.exe in ProcessExplorer (na voljo na Microsoftovem spletnem mestu).

  1. Če želite zagnati ProcessExplorer s sistemskimi pravicami (SYSTEM), ga morate zagnati tako: PSExec -s -i ProcExp.exe
  2. Na seznamu procesov Process Explorer poiščite postopek obešene storitve in odprite njegove lastnosti;
  3. Pojdite na zavihek Storitve, poiščite svojo storitev in kliknite Dovoljenja;
  4. V dovoljenjih storitve dodelite pravice Polno Nadzor za skupino skrbnikov (Skrbniki). Spremembe shranite;
  5. Zdaj poskusite dokončati postopek storitve. Upoštevajte, da so bile pravice do storitve in njenega postopka začasno dodeljene, dokler ni bila znova zagnana. O trajnih pravicah do storitev glejte Storitvene pravice Windows.