A Windows szolgáltatások kezelése a PowerShell segítségével

Windows rendszeren a szolgáltatásokat nemcsak a services.msc grafikus konzolon vagy a Sc.exe parancssori segédprogramon (az eredeti Resource Kit tartalmazza), hanem a PowerShell használatával is kezelheti. Ebben a cikkben a Windows szolgáltatások PowerShell használatával történő kezelésének különböző forgatókönyveit vizsgáljuk meg..

Tartalom:

  • Alapvető PowerShell-parancsmagok a Windows szolgáltatások kezeléséhez
  • A szolgáltatások leállítása, indítása, szüneteltetése és újraindítása a PowerShell szolgáltatásból
  • Set-Service - módosítsa a Windows szolgáltatás beállításait
  • Windows szolgáltatások létrehozása és eltávolítása a PowerShell használatával
  • Cserélje ki a fiókot a szolgáltatás elindításához

Alapvető PowerShell-parancsmagok a Windows szolgáltatások kezeléséhez

Nyolc központi szolgáltatás-parancsmag van kialakítva, amelyek a Windows állapotának megtekintésére és kezelésére szolgálnak.

A Service-parancsmagok teljes listájának beolvasásához írja be a következő parancsot:

Get-Help \ * - Szolgáltatás

  • Kérjen szolgáltatást - lehetővé teszi a szolgáltatások elérését a helyi vagy távoli számítógépen, mind elindítva, mind leállítva;
  • Új szolgáltatás - hozzon létre egy szolgáltatást. Új bejegyzést hoz létre a Windows szolgáltatás számára a nyilvántartási és szolgáltatási adatbázisban;
  • Indítsa újra a szolgáltatást - indítsa újra a szolgáltatást. Üzenet küld a szolgáltatás újraindításáról a Windows Service Controller segítségével
  • Folytassa a szolgáltatást - folytassa a szolgáltatást. Folytatás üzenetet küld a Windows Service Manager számára;
  • Set-Service - A helyi vagy távoli szolgáltatás beállításainak módosítása, beleértve az állapotot, leírást, megjelenített nevet és indítási módot. Ez a parancsmag felhasználható egy szolgáltatás indítására, leállítására vagy szüneteltetésére is;
  • Start-Service - indítsa el a szolgáltatást;
  • Állítsa le a szolgáltatást - leállítja a szolgáltatást (stop üzenetet küld a Windows Service Manager-nek);
  • A szolgáltatás felfüggesztése szüneteltesse a szolgáltatást. A felfüggesztett szolgáltatás továbbra is fut, de addig nem működik, amíg a szolgáltatás folytatódik, például a Resume-Service parancsmag segítségével.

Az egyes parancsmagok használatának részletes leírására és példáira a Get-help:

Get-Help Start-Service

Get-Service: a szolgáltatások és azok állapotának listája

A parancsmag segítségével lekérheti a szolgáltatás listáját és állapotát (futás / leállítva) egy helyi vagy távoli számítógépen. Kérjen szolgáltatást. A -Name opció lehetővé teszi a szolgáltatás neve szerinti kiválasztást. A szolgáltatás neve a helyettesítő karakter használatával adható meg *.

Ha nem tudja a szolgáltatás pontos nevét, akkor a paraméter segítségével a megjelenített név alapján lehet szolgáltatásokat keresni -DisplayName. Használhatja az értékek listáját és a helyettesítő karaktereket.

.

parancsmaggal Kérjen szolgáltatást felhasználható a távoli számítógépeken lévő szolgáltatások állapotának megszerzésére a paraméter megadásával -ComputerName. Számos távoli számítógépen azonnal lekérdezheti a szolgáltatás állapotát; nevüket vesszővel kell felsorolni. Például az alábbi parancs megkapja a Spooler szolgáltatás állapotát az RM1 és RM2 távoli számítógépeken.

Get-Service spooller - ComputeName RM1, RM2

Állapot neve Kijelzőnév ------ ---- ----------- Futópálya nyomtató-sorozat Gyorsan leállított sorozat-nyomtató-sorozat

A Select-Object parancsmag az összes szolgáltatási tulajdonságot megjeleníti:

Get-Service spool | Objektum kiválasztása *

parancsmaggal Select-Object megjeleníti a szolgáltatás bizonyos tulajdonságait. Például meg kell jelenítenünk a Spooler szolgáltatás nevét, állapotát és elérhető szolgáltatásait:

Get-Service Spooler | Válassza a DisplayName, Status, ServiceName, Can * lehetőséget

parancsmaggal Kérjen szolgáltatást két paraméterrel rendelkezik, amelyek lehetővé teszik a szolgáltatási függőségek elérését:

  • paraméter -DependentServices lehetővé teszi az ettől a szolgáltatástól függő szolgáltatások megjelenítését;
  • paraméter -RequiredServices lehetővé teszi a szolgáltatások megjelenítését, amelyektől ez a szolgáltatás függ.

A következő parancs megjeleníti a Spooler szolgáltatás elindításához szükséges szolgáltatásokat:

Get-Service -Név Spooler -RequiredServices

A következő parancs a Spooler szolgáltatástól függő szolgáltatásokat jeleníti meg:

Get-Service -Név Spooler -DependentServices

Ha meghatározott állapotú vagy beállításokkal rendelkező szolgáltatásokra van szüksége, akkor használja a parancsmagot Hol-Object. Például kapunk egy futó szolgáltatások listáját a Futás állapotmal:

Get-Service | Hol-Object $ _. Status -eq 'fut'

A szolgáltatások megjelenítéséhez egy Kézi indítási móddal futtassa a parancsot

Get-Service | Where-Object $ _. Starttype -eq 'Manual'

Ellenőrizze, hogy a rendszer rendelkezik-e a megadott szolgáltatással:

if (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)

Írás-host "ServiceTest létezik"

A szolgáltatások leállítása, indítása, szüneteltetése és újraindítása a PowerShell szolgáltatásból

A parancsmag segítségével leállíthatja a szolgáltatást Állítsa le a szolgáltatást. A nyomtatási szolgáltatás leállításához futtassa a következő parancsot:

Stop-Service -Name spooler

A Stop-Service parancsmag nem jelenít meg adatokat a végrehajtás után. A parancs eredményének megtekintéséhez használja a -PassThru paramétert.

Felhívjuk figyelmét, hogy nem minden szolgáltatást lehet megállítani. Ha vannak függõ szolgáltatások, akkor hibaüzenetet kap

Nem lehet leállítani a szolgáltatást, mert függő szolgáltatásokkal rendelkezik. Csak akkor állítható le, ha az erőjelző be van állítva.

A leállítás kényszerítéséhez használja a paramétert -erő. Ne feledje, hogy az összes függő szolgáltatás is leáll:

Stop-Service samss -Force -Passthru

A következő parancs leállítja a futtatott állapotban felsorolt ​​szolgáltatásokat (bit, spool):

szerviz bit, görgő | ahol $ _. status -eq 'running' | stop-service -passthru

Időnként a szolgáltatások leállnak a Leállási állapotban, és folyamataikat erőszakkal le kell állítani.

parancsmaggal Start-Service megállított szolgáltatásokat indít:

Start-Service -Név-spooller -PassThru

A szolgáltatás nem indul el, ha leállnak a függõ szolgáltatások. Megtalálni és engedélyezni őket:

get-service samss | Foreach start-service $ _. Név -passthru; start-service $ _. DependentServices -passthru

parancsmaggal A szolgáltatás felfüggesztése felfüggesztheti azokat a szolgáltatásokat, amelyek ideiglenes felfüggesztést és folytatást tesznek lehetővé. A parancsmag segítségével információt szerezhet egy adott szolgáltatás ideiglenes felfüggesztéséről. Kérjen szolgáltatást ingatlanokkal "CanPauseAndContinue".

Get-Service samss | A formátum-lista neve, szüneteltethető és folytatható

Az összes szüneteltetett szolgáltatás listájának megjelenítéséhez írja be a következő parancsot:

Get-Service | Where-Object $ _. Canpauseand Continue -eq "True"

Az SQLBrowser szolgáltatás felfüggesztése:

Felfüggesztés-szolgáltatás - Név SQLBrowser

A felfüggesztett szolgáltatás folytatásához használja a parancsmagot Folytatás-szolgáltatás:

Folytatás-szolgáltatás - Név SQLBrowser

A következő parancs folytatja az összes szüneteltetett szolgáltatást:

get-service | where-object $ _. Status -eq "Paused" | önéletrajz-szolgáltatás

parancsmaggal Indítsa újra a szolgáltatást újraindítja a szolgáltatást:

Restart-Service -Name spool

Ez a parancs elindítja a számítógép összes leállított hálózati szolgáltatását:

get-service net * | where-object $ _. Status -eq "Stopped" | újraindítás-szolgáltatás

paraméter -ComputerName ezek a parancsmagok hiányoznak, de távoli számítógépen futtathatók a parancsmag segítségével Hívja be a parancsot vagy csővezetéken:

Például az RM1 távoli számítógépen a nyomtatási sor újraindításához futtassa a következő parancsot:
Get-Service Spooler - ComputeName RM1 | Start-Service

Alapértelmezés szerint csak a rendszergazdák indíthatják el / leállíthatják a szolgáltatásokat a Windows rendszeren, de jogosultságokat adhatnak egy adott szolgáltatás újraindításához a hétköznapi felhasználók számára.

Set-Service - módosítsa a Windows szolgáltatás beállításait

parancsmaggal Set-Service lehetővé teszi a szolgáltatások vagy a helyi vagy távoli számítógép beállításainak megváltoztatását. Mivel a szolgáltatás állapota tulajdonság, ez a parancsmag használható a szolgáltatás indítására, leállítására és szüneteltetésére. parancsmaggal Set-Service van egy paramétere -StartupType, lehetővé teszi, hogy megváltoztassa a szolgáltatás indításának típusát.

Változtassa meg a spool-szolgáltatás indítási típusát automatikusra:

Set-Service spooler -indítótípus automatikus -passthru

A szolgáltatást át lehet helyezni a kézi indításra:

Set-Service spooler -indítótípus kézi -passthru

Windows szolgáltatások létrehozása és eltávolítása a PowerShell használatával

Új szolgáltatás - parancsmag új szolgáltatás létrehozásához a Windows rendszeren. Az új szolgáltatáshoz meg kell adnia a nevet és a futtatható fájlt (a PowerShell parancsfájlt futtathatja Windows szolgáltatásként)..

A példában hozzon létre egy új, TestService nevű szolgáltatást.

új szolgáltatás-név TestService -binaryPathName "C: \ WINDOWS \ System32 \ svchost.exe -k netsvcs"

A Get-WmiObject paraméter segítségével információkat kapunk az indítási módról és a szolgáltatás leírásáról

get-wmiobject win32_service -filter "name = 'testservice'"

Az új szolgáltatás paramétereit a paranccsal módosíthatja

Set-Service -Name TestService -A 'My Service' leírása -StartupType Manual

Szolgáltatás eltávolításához használja a parancsot

(Get-WmiObject win32_service -Filter "name = 'TestService'"). Törlés ()

Cserélje ki a fiókot a szolgáltatás elindításához

Megváltoztathatja azt a fiókot, amelyen a szolgáltatás elindul. Kérje le annak a fióknak a nevét, amelyet a TestService elindításához használtak

get-wmiobject win32_service -filter "name = 'TestService'" | Válasszon nevet, kezdőnevet

A fióknév és jelszó megváltoztatásához hajtsa végre a parancsokat.

$ svc = get-wmiobject win32_service -filter "name = 'TestService'"
$ svc.GetMethodParameters ("változtatás")

Ennek eredményeként kapunk egy listát a Change () módszer paramétereiről. Figyelembe vesszük, ahol a StartName és a StartPassword paraméterek találhatók - 20, illetve 21 helyen.

$ svc | Invoke-WmiMethod -Name Change -ArgumentList @ ($ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, "Administrator", "P @ ssw0rd")

Vagy megadhatja a gMSA-fiók nevét. A jelszó nincs megadva.

Mint láthatja, a PowerShell megkönnyíti a Windows szolgáltatások kezelését. Készíthet, leállíthat, elindíthat és folytathat szolgáltatásokat, megváltoztathatja azok tulajdonságait. A legtöbb parancsmag lehetővé teszi a távoli számítógépeken történő szolgáltatások kezelését..