Geek skola: mācīšanās kā lietot objektus PowerShell

Satura rādītājs:

Geek skola: mācīšanās kā lietot objektus PowerShell
Geek skola: mācīšanās kā lietot objektus PowerShell

Video: Geek skola: mācīšanās kā lietot objektus PowerShell

Video: Geek skola: mācīšanās kā lietot objektus PowerShell
Video: Windows 10 - How to check RAM/Memory - System Specs - Free & Easy - YouTube 2024, Aprīlis
Anonim
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.
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:

  • Uzziniet, kā automatizēt Windows ar PowerShell
  • Mācīšanās lietot moduļus PowerShell

Un visu nedēļu pieskarieties atlikušajām sērijām.

Objekti

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.

Image
Image

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

Pipeline

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

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:
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.
Ievērojiet, ka ir cmdlet called Stop-Service; apskatīsim palīdzību par to.

Get-Help –Name Stop-Service

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.
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-Help -Name Stop-Service –Full

Mūsu aizdomas bija pareizi. Tātad šajā brīdī mēs zinām sekojošo:
Mūsu aizdomas bija pareizi. Tātad šajā brīdī mēs zinām sekojošo:
  • Get-Service atgriež ServiceController objektus
  • Stop-Service ir parametrs, ko sauc par InputObject, kas kā ievadi akceptē vienu vai vairākus ServiceControllers.
  • Parametrs InputObject pieņem cauruļvada ievadi.

Izmantojot šo informāciju, mēs varam izdarīt sekojošo:

Get-Service -Name ‘Apple Mobile Device’ | 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.
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.

Mājasdarbs

Izlasi Objektu cauruļvadā

Ja jums ir kādi jautājumi, jūs varat man tweetēt @ taybgibb vai vienkārši atstāt komentāru.

Ieteicams: