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
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
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..