Geek iskolai tanulás Hogyan használjunk objektumokat a PowerShell-ben
Az objektumok megértése a PowerShell „megszerzésének” egyik alapfogalma. Csatlakozzon hozzánk, amikor felfedezzük az objektumokat, és hogyan teszik jobban a PowerShell-t, mint bármely más héj ma.
Ügyeljen arra, hogy olvassa el a sorozat korábbi cikkeit:
- Ismerje meg, hogyan kell automatizálni a Windowsot a PowerShell segítségével
- Tanulj meg a Cmdlet használatát a PowerShell-ben
És hetekig tartsd a többi sorozatot.
tárgyak
Elgondolkozott már valaha, hogy mi határozza meg a PowerShell-et a hagyományos Linux-héjtól, mint a Bash, vagy akár a legördülő parancssor? A válasz nagyon egyszerű: a hagyományos kagyló kimeneti szöveg, ami megnehezíti a formázást és a szűrést. Természetesen vannak olyan eszközök, amelyek segítenek abban, hogy a munkát elvégezzék (szed és grep eszébe jut), de a nap végén, ha bármilyen nehéz szöveges értelmezést szeretne csinálni, ismernie kell a szokásos kifejezéseket, mint a hátra.
A PowerShell kihasználja a mögöttes .Net keretrendszert, és más megközelítést alkalmaz, és objektumok helyett szöveget használ. Az objektumok csak valamit képviselnek. Ezek egy részegység és cselekvés gyűjteménye. Nézzük meg a kerékpár részeit és hogyan használhatjuk őket.
A .Net objektumok két kisebb különbség kivételével azonosak: az „Alkatrészeket” hívják tulajdonságok és az „Utasítások” mód. Ha egy Windows szolgáltatást objektumként kívánunk képviselni, úgy dönthetünk, hogy célszerű három tulajdonságot leírni: Szolgáltatás neve, állapota és leírása. Szükségünk van továbbá a szolgáltatással való kölcsönhatásra, így előfordulhat, hogy az objektumot Start, Stop és Pause módszerrel adjuk meg.
Az objektum tulajdonságait és módszereit a Get-Member cmdlethez továbbíthatja. A PowerShell cmdlet kimenetek nagyrészt az .Net keretrendszer alapját képező objektumok, de saját objektumokat hozhat létre, ha olyan nyelvet kell használni, mint a C # vagy a PSObject típus.
A csővezeték
Rengeteg Linux-kagyló van egy csővezetékkel, amely lehetővé teszi, hogy elküldje a szöveget, amelyet az egyik parancs kimenetként a csővezeték következő parancsának bemenetként küld. A PowerShell ezt a szintet a következő szintre veszi, lehetővé téve, hogy az egyik cmdlet által kibocsátott objektumokat átvegye, és átadja azokat a csővezeték következő cmdletjébe. A trükk az, hogy tudjuk, milyen típusú objektumot küld a cmdlet, ami nagyon egyszerű a Get-Member cmdlet használatakor.
Get-Service Get-tag
A cikk hatályán kívül eső okok miatt a tulajdonságokat és módszereket együttesen osztálytagoknak nevezik, ami megmagyarázza, hogy miért használja a Get-Member cmdletet az objektum összes módszerének és tulajdonságának listájának megkereséséhez. Azonban a Get-Member cmdlet egy másik fontos információt, az alapul szolgáló objektumtípust is visszaad. A fenti képernyőképben láthatjuk, hogy a Get-Service a következő objektumokat adja vissza:
System.ServiceProcess.ServiceController
Mivel a PowerShell objektumokkal és nem szöveggel foglalkozik, nem minden cmdlet összekapcsolható a csővezetékkel [1]. Ez azt jelenti, hogy meg kell találnunk egy cmdlet-et, amely a System.ServiceProcess.ServiceController objektumot fogadja el a csővezetékről.
Get-Command -ParameterType System.ServiceProcess.ServiceController
Figyeljük meg, hogy van egy Stop-Service nevű cmdlet; nézzük meg a segítséget.
Get-Help -Name Stop-Service
Úgy tűnik, hogy az InputObject paraméter egy ServiceController objektum tömböt vesz fel bemenetként. Általában, ha egy InputObject nevű paramétert lát, akkor elfogadja a csővezeték bemenetét, de csak azért, hogy megbizonyosodjunk arról, hogy a paraméter teljes segítségére van szüksége.
Get-Help -Name Stop-Service - Teljes
A gyanúink helyesek voltak. Tehát ezen a ponton tudjuk a következőket:
- A Get-Service visszatér a ServiceController objektumokhoz
- A Stop-Service rendelkezik egy InputObject nevű paraméterrel, amely egy vagy több ServiceControllert fogad be bemenetként.
- Az InputObject paraméter elfogadja a csővezeték bemenetet.
Ezen információk felhasználásával a következőket tehettük:
Get-Service -Neve "Apple Mobile Device" | Stop-Service
Ez az idő az emberek számára. Legközelebb megnézzük, hogyan lehet formázni, szűrni és összehasonlítani a csővezeték objektumait.
Házi feladat
- Olvassa fel az objektumvezetéket
Ha bármilyen kérdése van, akkor tweet me @taybgibb, vagy csak hagyjon megjegyzést.