18Aug

Geek School: A PowerShell objektumainak használata

Az objektumok megértése az egyik legfontosabb fogalom a "Get" PowerShell számára. Csatlakozzon hozzánk, miközben tárgyakat tárunk fel, és hogyan teszik a PowerShellet jobbra, mint bármely más kagyló ma.

Olvassa el a sorozatban szereplő korábbi cikkeket:

  • Ismerje meg a Windows automatizálását a PowerShell segítségével
  • A PowerShell

-ben lévő cmdletek használatának tanulása A hét minden részében maradjon hangolva.

Tárgyak

Elgondolkodott már arról, hogy mi állítja a PowerShell-et, mint egy hagyományos Linux shell, mint például a Bash, vagy akár a régi parancssori prompt? A válasz nagyon egyszerű: a hagyományos kagyló kimeneti szövege, ami megnehezíti a formázáshoz és a szűréshez hasonló dolgokat. Természetesen vannak olyan eszközök, amelyek segítenek abban, hogy megkapja a munkát( a sed és a grep eszébe jut), de a nap végén, ha bármilyen nehéz szöveget szeretne feldolgozni, ismernie kell a rendszeres kifejezéseket, mint aa kezed hátán.

A PowerShell kihasználja az alapul szolgáló. Net keretrendszert, és más megközelítést alkalmaz, objektumok helyett szövegeket használ. Az objektumok csak egy ábrázolást jelentenek valaminek. Ezek azok a részek és cselekvések gyűjteményei, amelyek felhasználhatók. Vessünk egy pillantást a kerékpár alkatrészeire, és hogyan használjuk őket.

A. Net objektumok ugyanolyanok, mint két apró különbség: az "Alkatrészek" tulajdonságok és az "utasítások" módszerek .Ha egy Windows szolgáltatás objektumként szeretnénk képviselni, úgy döntenénk, hogy három tulajdonsággal kell leírni: Service Name, State and Description. A szolgáltatással is kölcsönhatásba kell lépnünk, így az objektumot Start, Stop és Pause módszerrel adhatjuk meg.

Az objektum tulajdonságait és módszereit megtekintheti a Get-Member cmdlet használatával. Az olyan objektumok, amelyeket egy PowerShell cmdlet kimenetek nagyrészt alapulnak a. Net keretrendszer típusai, de létrehozhat saját objektumokat, ha olyan nyelvet szeretne használni, mint a C # vagy a PSObject típusát.

A csővezeték

Rengeteg Linux csomópontú héj található, amely lehetővé teszi, hogy elküldjük a szöveget, amelyet egy parancs kimenetként adja hozzá a következő parancshoz. A PowerShell ezt a következő szintre emeli, lehetővé téve, hogy az egyik cmdlet által kiadott objektumokat adja át, és adja át őket a következő parancsmagba. A trükk tudni fogja, hogy milyen típusú objektum található a cmdlet, ami nagyon könnyű a Get-Member cmdlet használatakor.

Get-Service |Get-Member

Ennek a cikknek a határain kívül eső okokból a tulajdonságokat és a módszereket közösen osztálytagoknak hívják, ami megmagyarázza, hogy miért használja a Get-Member cmdletet egy objektum összes metódusának és tulajdonságának listájához. A Get-Member cmdlet ugyanakkor egy másik fontos információt, az objektumot is tartalmaz. A fenti képernyőképen láthatjuk, hogy a Get-Service a következő típusokat viszi vissza:

System. ServiceProcess. ServiceController

Mivel a PowerShell objektumokkal foglalkozik, és nem szöveggel, nem minden cmdlet kapcsolható össze a csővezetéken keresztül [1].Ez azt jelenti, hogy meg kell találnunk egy cmdletet, amely elfogadja a System. ServiceProcess. ServiceController objektumot a csővezetékből.

Get-Command -ParameterType System. ServiceProcess. ServiceController

Figyeld meg, hogy van egy cmdlet nevű Stop-Service;vessünk egy pillantást a segítségre.

Get-Help -Name Stop-Service

Úgy tűnik, hogy az InputObject paraméter bevitelként töltötte be a ServiceController objektumokat.Általában, ha egy InputObject nevű paramétert lát, elfogadja a Pipeline bemenetet, de csak azért, hogy biztosan vessünk egy pillantást az adott paraméter teljes segítségére.

Get-Help -Name Stop-Service-teljes

A gyanúink helyesek voltak. Tehát ezen a ponton tudjuk a következőket:

  • Get-Service visszaadja a ServiceController objektumokat
  • A Stop-Service egy InputObject nevű paraméter, amely bemenetként egy vagy több ServiceControllert fogad be.
  • Az InputObject paraméter elfogadja a csővezeték bemenetet.

Ezen információk felhasználásával a következőket tehetjük:

Get-Service -Name "Apple Mobile Device" |Stop-Service

Ez az egész ebben az időben emberek. Legközelebb nézzük meg, hogyan formázhatjuk, szűrhetjük és összehasonlíthatjuk a csővezetékben lévő tárgyakat.

Házi feladat

  • Olvassa el az Object Pipeline
-t

Ha bármilyen kérdése van, küldj nekem @taybgibb-et, vagy hagyj egy megjegyzést.