Olvassa el a sorozatban szereplő cikkeket:
- További információ a Windows PowerShell automatizálásáról
- A PowerShell-ben található cmdletek használatának elsajátítása
És egész héten maradjon a sorozatban.
tárgyak
Elgondolkodott már arról, hogy mi határozza meg a PowerShell-t, 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 a a 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" nevezik tulajdonságok és az "utasításokat" nevezik mód. 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.
A csővezeték
Rengeteg Linux csomóhéj található, amelyek lehetővé teszik, 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
System.ServiceProcess.ServiceController
Mivel a PowerShell objektumokkal és nem szöveggel foglalkozik, 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
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- A 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
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.