Hogyan kényszeríthető le a felfüggesztett szolgáltatás folyamata a Windows rendszerben?

Hogyan lehet leállítani egy olyan Windows szolgáltatás folyamatát, amely megakadályozza a leállási állapotot? Úgy gondolom, hogy a legtöbb Windows rendszergazda olyan helyzetekben találkozott, amikor megpróbál egy szolgáltatást leállítani (újraindítani) a szolgáltatáskezelő konzol (Services.msc) grafikus felületén, a szolgáltatás lefagy és állapotban lefagy. megállítás. Ezután nem állíthatja le a szolgáltatást a konzolon, mert A szolgáltatás művelet gombjai nem érhetők el. A legegyszerűbb módszer a szerver újraindítása, de ez nem mindig érvényes. Vegyünk fontolóra egy alternatív módszert erőszakos kiszolgálás vagy folyamat újraindítás nélkül.

Ha a szolgáltatás leállítását követő 30 másodpercen belül nem áll le, a Windows megjeleníti a következő üzenetet:

Nem sikerült leállítani az xxxxxxx Windows szolgáltatást a helyi számítógépen.
1053. hiba. A szolgáltatás nem tudta leállítani az xxxxxx szolgáltatást a helyi számítógépen
1053-as hiba: A szolgáltatás nem válaszolt időben.

Amikor megpróbálja leállítani egy ilyen szolgáltatást: net stop wuauserv paranccsal, megjelenik egy üzenet:

A szolgáltatás elindul vagy leáll. Kérjük, próbálja meg újra a levelet.

Tartalom:

  • Függő szolgáltatás megszüntetése a TaskKill segítségével
  • Egy felfüggesztett szolgáltatás erőszakos leállítása a PowerShellből
  • A felakasztott folyamatok elemzése Resmon alkalmazásával
  • Process Explorer: A felfüggesztett folyamat befejezése a Rendszer alól

Függő szolgáltatás megszüntetése a TaskKill segítségével

A felfüggesztett szolgáltatás legegyszerűbb módja a segédprogram használata taskkill. Először meg kell határoznia PID (folyamat azonosítója) szolgáltatásunkon. Példaként vegye fel a Windows Update szolgáltatást, annak rendszernevét wuauserv (a név megtalálható a services.msc konzol szolgáltatás tulajdonságaiban).

Gyakran ez a probléma fordul elő a Windows Modules Installer szolgáltatásnál, amikor a kiszolgáló újraindul, különösen a Windows Server 2012 R2 / 2008 R2 frissítések telepítése után.Fontos. Legyen óvatos. A kritikus Windows szolgáltatások folyamatának kényszerített lemondása BSOD-hoz vagy a rendszer újraindításához vezethet.

A parancssorban rendszergazdai jogokkal (ez fontos, különben hozzáférés megtagadva lesz hiba):
sc queryex wuauserv

Ebben az esetben a PID folyamat értéke 816.

A felfüggesztett folyamat megszüntetése a PID 816 segítségével:

taskkill / PID 816 / F

SIKER: A PID 816-os folyamat befejeződött.

Ez a parancs arra kényszeríti a szolgáltatást, hogy abbahagyja. A jövőben visszatérhet a szolgáltatáskezelő konzolhoz, és manuálisan elindíthatja a szolgáltatást (vagy teljesen törölheti ezt a szolgáltatást, ha nincs rá szüksége).

A felfüggesztett szolgáltatás fejlécét elegánsabb módon lehet végrehajtani anélkül, hogy manuálisan kellene meghatároznia a folyamat PID-jét. A taskkill segédprogram rendelkezik a / FI opcióval, amely lehetővé teszi egy szűrő használatát a szükséges szolgáltatások vagy folyamatok kiválasztására. Megállíthat egy adott szolgáltatást a következő paranccsal:

TASKKILL / F / FI “SZOLGÁLTATÁSOK eq wuauserv”

Vagy egyáltalán el is hagyhatja a szolgáltatás nevét, és az összes szolgáltatást fagyasztott állapotban fejezheti be a következő paranccsal:

taskkill / F / FI „status eq nem válaszol”

Ezt követően a Leállítás állapotába elakadt szolgáltatásnak le kell állnia.

Egy felfüggesztett szolgáltatás erőszakos leállítása a PowerShellből

A PowerShell használatával kényszerítheti a szolgáltatás leállítását. A következő parancs segítségével leállíthatja a szolgáltatások listáját leállási állapotban:

Get-WmiObject -Class Win32_service | Where-Object $ _. Állapot -eq 'stop függőben'

A parancsmag segíteni fogja a folyamatot az összes megtalált szolgáltatásnál. leállítása-folyamat. A két művelet hurokban történő kombinálásával olyan szkriptet kapunk, amely automatikusan leállítja a rendszerben felfüggesztett szolgáltatások összes folyamatát:

$ Szolgáltatások = Get-WmiObject -Class win32_service -Filter "state = 'stop folyamatban'"
if ($ Szolgáltatások)
foreach ($ szolgáltatás $ Szolgáltatásokban)
próbáld
Stop-Process -Id $ service.processid -Force -PassThru -ErrorAction Stop

elkapni
Írás-figyelmeztetés - Üzenet "Hiba. Hiba részletei: $ _. Exception.Message"



egyéb
Íráskimenet "Nincs szolgáltatás a 'Stopping'.status'-tal"

A felakasztott folyamatok elemzése Resmon alkalmazásával

A resmon erőforrás-figyelő segítségével azonosíthatja azt a folyamatot, amely miatt a szolgáltatás lefagyott.

  1. Az Erőforrás figyelő ablakban ugorjon a CPU fülre (CPU), és keresse meg a felfüggesztett szolgáltatás folyamatát;
  2. Válassza ki az elemet Várakozó lánc elemzés (elemez Várja lánc);
  3. Egy új ablakban valószínűleg látni fogja, hogy újabb folyamat vár rád. Teljesítsd. Ha az svchost.exe rendszer folyamatára vár, akkor nem kell azt megszakítania. Próbálja meg elemezni ennek a folyamatnak a várakozási láncát. Keresse meg annak az eljárásnak a PID-jét, amelyen az svchost.exe vár, és fejezze be.

Process Explorer: A felfüggesztett folyamat befejezése a Rendszer alól

Néhány, a Rendszer alól indított folyamatot a helyi kiszolgáló rendszergazda sem tudja megszakítani. A helyzet az, hogy egyszerűen nincs joga bizonyos folyamatokhoz vagy szolgáltatásokhoz. Az ilyen folyamat (szolgáltatások) befejezéséhez meg kell adnia a helyi csoport rendszergazdáinak a szolgáltatás (folyamat) jogait, majd be kell fejeznie azokat. Ehhez két segédprogramra van szükségünk: psexec.exe és ProcessExplorer (elérhető a Microsoft webhelyén).

  1. A ProcessExplorer rendszerjogosultságokkal történő futtatásához (SYSTEM) a következőképpen kell elindítania: PSExec -s -i ProcExp.exe
  2. A Process Explorer folyamatlistájában keresse meg a felfüggesztett szolgáltatás folyamatát, és nyissa meg annak tulajdonságait;
  3. Ugrás a fülre Szolgáltatások, keresse meg szolgáltatását és kattintson Engedélyek;
  4. A szolgáltatás engedélyében adja meg a jogokat teljes ellenőrzés rendszergazdák egy csoportja számára (A rendszergazdák). Mentse el a változtatásokat;
  5. Most próbálja meg befejezni a szolgáltatási folyamatot. Vegye figyelembe, hogy a szolgáltatáshoz és annak folyamatához való jogokat ideiglenesen adták meg, amíg az újra nem indul. A szolgáltatásokkal kapcsolatos állandó jogokkal kapcsolatban lásd: Windows szolgáltatásjogok.