Kako prisilno prekinuti postupak opuštene usluge u sustavu Windows?

Kako prekinuti postupak Windows usluge koja je zaglavljena u statusu zaustavljanja? Mislim da se većina Windows administratora susrela sa situacijama kada se prilikom pokušaja zaustavljanja (ponovnog pokretanja) usluge s grafičkog sučelja konzole za upravljanje uslugama (Services.msc) usluga zamrzava i zaustavlja se u statusu zaustavljanje. Nakon toga ne možete zaustaviti uslugu u konzoli, jer gumbi radne radnje postaju nedostupni. Najlakši način je ponovno pokrenuti poslužitelj, ali to ne vrijedi uvijek. Razmislite o alternativnom putu služba isključivanja ili obradite bez potrebe za ponovnim pokretanjem.

Ako se u roku od 30 sekundi nakon što je pokušao zaustaviti uslugu, ne prestaje, Windows prikazuje poruku:

Zaustavljanje usluge xxxxxxx Windows na lokalnom računalu nije uspjelo.
Pogreška 1053. Usluga nije mogla zaustaviti xxxxxx uslugu na lokalnom računalu
Pogreška 1053: Služba nije reagirala pravodobno.

Kada pokušavate zaustaviti takvu uslugu naredbom: net stop wuauserv, pojavljuje se poruka:

Usluga počinje ili prestaje. Pokušajte ponovo pismo.

sadržaj:

  • Prekid usluge vješanja pomoću programa TaskKill
  • Prisilno isključivanje obješene usluge iz PowerShela
  • Analiza pokvarenih procesa pomoću Resmona
  • Proces preglednika: Završavanje obustavljenog postupka iz sustava SYSTEM

Prekid usluge vješanja pomoću programa TaskKill

Najlakši način za završetak obješene usluge je korištenje alata taskkill. Prvo morate odrediti PID (identifikator procesa) naše usluge. Kao primjer, uzmite uslugu Windows Update, njeno ime sustava wuauserv (ime se može naći u uslužnim svojstvima na services.msc konzoli).

Taj se problem često događa s uslugom Instalacijski program za Windows Module pri ponovnom pokretanju poslužitelja, posebno nakon instaliranja ažuriranja na Windows Server 2012 R2 / 2008 R2.Važno je. Budite oprezni. Prisilna odustajanja od kritičnih Windows usluga može dovesti do ponovnog pokretanja BSOD-a ili sustava.

U naredbenoj liniji s administratorskim pravima (ovo je važno, jer u protivnom neće doći do pogreške koja je odbijena u pristupu):
sc queryex wuauserv

U ovom slučaju PID postupka je 816.

Da biste prisilili prekinuti obustavljeni proces s PID 816:

taskkill / PID 816 / F

USPJEH: Proces s PID 816 je prekinut.

Ova naredba prisiljava uslugu na raskid. Ubuduće se možete vratiti na konzolu za upravljanje uslugama i ručno pokrenuti uslugu (ili je u potpunosti izbrisati ako nije potrebna).

Pregled glave obješene usluge može se obaviti elegantnije, a da ne morate ručno odrediti PID postupka. Uslužni program taskkill ima / FI opciju koja vam omogućuje da pomoću filtra odaberete potrebne usluge ili procese. Možete zaustaviti određenu uslugu naredbom:

TASKKILL / F / FI "USLUGE eq wuauserv"

Ili možete uopće izostaviti naziv usluge, završavajući sve usluge u smrznutom stanju pomoću naredbe:

taskkill / F / FI "status eq ne odgovara"

Nakon toga usluga koja je zaglavila u statusu Zaustavljanje treba prestati.

Prisilno isključivanje obješene usluge iz PowerShela

PowerShell možete također koristiti za zaustavljanje servisa. Pomoću sljedeće naredbe možete dobiti popis usluga u stanju zaustavljanja:

Get-WmiObject -Class win32_service | Gdje-objekt $ _. Država -eq 'stani u čekanju'

Cmdlet će vam pomoći dovršiti postupak za sve pronađene usluge. zaustaviti-postupak. Kombinirajući obje operacije u petlji, dobivamo skriptu koja automatski prekida sve procese suspendiranih usluga u sustavu:

$ Services = Get-WmiObject -Class win32_service -Filter "state = 'Stop na čekanju" "
ako ($ usluge)
foreach ($ usluga u $ Services)
probaj
Stop-Process -Id $ service.processid -Force -PassThru -ErrorAction Stop

uhvatiti
Write-Warning -Message "Pogreška. Pojedinosti o pogrešci: $ _. Izuzetak. Poruka"



drugo
Ispis rezultata "Nema usluga s" Zaustavljanje ".status"

Analiza pokvarenih procesa pomoću Resmona

Postupak koji je uzrokovao zamrzavanje usluge možete prepoznati pomoću monitora resmon resursa.

  1. U prozoru Resource Monitor idite na karticu CPU (CPU) i pronađite postupak obješene usluge;
  2. Odaberite stavku Analiza lančane čekanja (analizirati Pričekajte lanac);
  3. U novom prozoru ćete najvjerojatnije vidjeti da vas čeka još jedan postupak. Dovršite. Ako čekate proces procesa svchost.exe, ne trebate ga prekidati. Pokušajte analizirati lanac čekanja za ovaj postupak. Pronađite PID postupka koji čeka vaš svchost.exe i zaustavite ga.

Proces preglednika: Završavanje obustavljenog postupka iz sustava SYSTEM

Neki procesi pokrenuti iz sustava SYSTEM ne mogu prekinuti čak ni lokalni administrator poslužitelja. Činjenica je da on jednostavno nema prava na određene procese ili usluge. Da biste dovršili takav postupak (usluge), trebate dati administratorima lokalne grupe prava na uslugu (proces), a zatim ih dovršiti. Da bismo to učinili, potrebna su nam dva alata: psexec.exe i ProcessExplorer (dostupno na Microsoftovoj web stranici).

  1. Da biste pokrenuli ProcessExplorer sa sistemskim pravima (SYSTEM), morate ga pokrenuti ovako: PSExec -s -i ProcExp.exe
  2. Na popisu procesa Process Explorer pronađite postupak obješene usluge i otvorite njena svojstva;
  3. Idite na karticu usluge, pronađite svoju uslugu i kliknite dozvole;
  4. U dozvolama usluge dodijelite prava za dodjelu puni kontrola za grupu administratora (administratori). Spremite promjene;
  5. Sada pokušajte dovršiti proces usluge. Imajte na umu da su prava na uslugu i njezin postupak dodijeljeni privremeno do ponovnog pokretanja. Trajna prava na usluge potražite u odjeljku Windows servisna prava.