Objektu izpratne ir viens no galvenajiem jēdzieniem, kā "panākt" PowerShell. Pievienojieties mums, kad mēs izpētām objektus un to, kā viņi padara PowerShell labāku nekā jebkurš cits apvalks, kas šodien tiek izmantots.
Noteikti izlasiet iepriekšējos sērijas rakstus:
Un visu nedēļu pieskarieties atlikušajām sērijām.
Vai esat kādreiz prātojies, ko PowerShell iestatīt, izņemot tradicionālo Linux apvalku, piemēram, Bash vai pat mantoto komandu uzvedni? Atbilde ir patiešām vienkārša: tradicionālo čaulu izvades tekstu, kas apgrūtina tādu darbību kā formatēšana un filtrēšana. Protams, ir arī rīki, kas palīdzēs jums izdarīt darbu (sed un grep nāk prātā), bet dienas beigās, ja vēlaties veikt jebkāda veida smagas teksta analīzes, jums jāzina regulāras izteiksmes, piemēram, rokas no muguras.
PowerShell izmanto pamatā esošo .Net sistēmu un izmanto atšķirīgu pieeju, izmantojot objektus, nevis tekstu. Objekti ir tikai kāda attēla priekšstats. Tie ir daļu kopums un darbības, lai tos izmantotu. Apskatīsim velosipēda daļas un to, kā mēs tos varētu izmantot.
Objekti. Net ir vienādi, izņemot divas mazas atšķirības: tiek sauktas "daļas" īpašības un tiek sauktas "Instrukcijas" metodes. Ja mēs vēlamies pārstāvēt Windows pakalpojumu kā objektu, mēs varētu nolemt, ka ir pareizi to aprakstīt, izmantojot trīs īpašības: Pakalpojuma nosaukums, Valsts un Apraksts. Mums ir arī jāsazinās ar pakalpojumu, tāpēc mēs varam piedāvāt objektu sākuma, pieturas un pauzes metodi.
Jūs varat redzēt objekta īpašības un metodes, nododot to cmdlet Get-member. Objekti, ko PowerShell komandu izejas lielā mērā veido .Net sistēmas pamatvirzieni, bet jūs varat izveidot savus objektus, ja jums jāizmanto tāda valoda kā C # vai jāizmanto PSObject tips.
Ir daudz Linux čaulas ar cauruļvadu, kas ļauj jums nosūtīt tekstu, ko viena komanda izvada kā ievadi nākamajai komandai cauruļvada. PowerShell to pāradresē uz nākamo līmeni, ļaujot jums ņemt priekšmetus, kas iegūti vienā cmdletā, un nodot tos ievadīšanai nākamajā cmdletā cauruļvadā. Triks ir zinot, kāda veida objektu atdod cmdlet, kas ir patiešām viegli, lietojot cmdlet Get-member.
Get-Service | Get-dalībnieks
Tādu iemeslu dēļ, kas nav šī raksta darbības joma, īpašības un metodes kopīgi sauc par klases locekļiem, un tas izskaidro, kāpēc jūs izmantojat cmdlet Get-Part, lai iegūtu sarakstu ar visām objektā esošajām metodēm un īpašībām. Tomēr cmdlet Get-member arī atdod vēl vienu svarīgu informāciju, kas ir pamatā esošais objekta veids. Iepriekš redzamajā ekrānuzņēmumā var redzēt, ka Get-Service atgriež šāda veida objektus:
System.ServiceProcess.ServiceController
Tā kā PowerShell nodarbojas ar objektiem, nevis tekstu, ne visas cmdletes var savienot, izmantojot cauruļvadu [1]. Tas nozīmē, ka mums ir jāatrod cmdlet, kas vēlas pieņemt System.ServiceProcess.ServiceController objektu no cauruļvada.
Get-Command -ParameterType System.ServiceProcess.ServiceController
Ievērojiet, ka ir cmdlet called Stop-Service; apskatīsim palīdzību par to.
Palīdzības saņemšana - nosaukuma apturēšanas pakalpojums
Izskatās, ka parametra InputObject ievadīšana ir saistīta ar ServiceController objektu masīvu. Parasti, ja jūs redzat parametru ar nosaukumu InputObject, tas pieņems ievadi no Pipeline, bet tikai, lai pārliecinātos, ka mēs apskatīsim pilnu parametru palīgu.
Get-Palīdzība-Nosaukums Stop-Service-pilnīgi
Mūsu aizdomas bija pareizi. Tātad šajā brīdī mēs zinām sekojošo:
Izmantojot šo informāciju, mēs varam izdarīt sekojošo:
Get-Service -Name "Apple Mobile ierīce" | Stop-Service
Tas viss ir šim laikam ļaudīm. Nākamreiz mēs aplūkosim, kā mēs varam formatēt, filtrēt un salīdzināt objektus Pipeline.
Ja jums ir kādi jautājumi, jūs varat man tweetēt @ taybgibb vai vienkārši atstāt komentāru.