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