Geeki kool: PowerShellis objektide kasutamise õppimine

Sisukord:

Geeki kool: PowerShellis objektide kasutamise õppimine
Geeki kool: PowerShellis objektide kasutamise õppimine

Video: Geeki kool: PowerShellis objektide kasutamise õppimine

Video: Geeki kool: PowerShellis objektide kasutamise õppimine
Video: Закладка яиц в инкубатор - YouTube 2024, Märts
Anonim
Objektide mõistmine on üks peamistest mõistetest PowerShelli "saamiseks". Ühinege meiega, kui uurime objekte ja kuidas nad PowerShelli täna paremini kui ükskõik millised muud kapslid.
Objektide mõistmine on üks peamistest mõistetest PowerShelli "saamiseks". Ühinege meiega, kui uurime objekte ja kuidas nad PowerShelli täna paremini kui ükskõik millised muud kapslid.

Vaadake kindlasti eelmise sarja artikleid:

  • Lugege, kuidas automatiseerida Windows PowerShelliga
  • Õpime PowerShellis kasutama kommuteid

Ja jääge häälestatuks ülejäänud sarja kogu nädala jooksul.

Objektid

Kas olete kunagi mõelnud, milline PowerShell seab peale traditsioonilise Linuxi shelli nagu Bash või isegi pärand käsureale? Vastus on tõesti lihtne: tavapäraste karpide väljundtekst, mis muudab keeruliseks näiteks vormindamise ja filtreerimise. Loomulikult on olemas tööriistad, mis aitavad teil tööd teha (sed ja grep meelde tulevad), kuid päeva lõpuks, kui soovite teha mis tahes rasket tekstilõpetust, peate teadma regulaaravaldisi nagu oma käe taga.

PowerShell kasutab aluseks olevat.Net-raamistikku ja võtab erineva lähenemise, kasutades objekte teksti asemel. Objektid on vaid midagi. Need on nende osade ja meetmete kogumik. Vaatame jalgratta osi ja kuidas neid neid kasutada.

Image
Image

.Net-i objektid on palju samad, välja arvatud kaks väikest erinevust: nimetatakse "Parts" omadused ja kutsutakse "juhiseid" meetodid. Kui me tahaksime objektiks olevat Windowsi teenust esindada, võiksime otsustada, et on asjakohane kirjeldada seda kolme omadusega: teenuse nimi, riik ja kirjeldus. Samuti peame suhtlema teenusega, nii et me saaksime objektiks alustada, peatada ja peatada.

Näete objekti omadusi ja meetodeid, edastades selle Get-liikmetele cmdlet. Objektid, mille PowerShelli cmdlet väljundid on.Net-raamistikus suuresti aluseks olevad tüübid, aga saate luua oma objekte, kui peate kasutama sellist keelt nagu C # või PSObject tüüpi.
Näete objekti omadusi ja meetodeid, edastades selle Get-liikmetele cmdlet. Objektid, mille PowerShelli cmdlet väljundid on.Net-raamistikus suuresti aluseks olevad tüübid, aga saate luua oma objekte, kui peate kasutama sellist keelt nagu C # või PSObject tüüpi.

Pipeline

Gaasijuhtmega on palju Linuxi kestusi, mis võimaldavad teil saata teksti, mida üks käsk väljundab sisendina järgmisele käskudele torujuhtmes. PowerShell võtab selle järgmisele tasemele, lubades teil võtta objektid, mis väljastavad üks cmdlet, ja edastama need sisendina järgmisse käskulas olevasse cmdletusse. Trikk on teada, millist tüüpi objekt saadab cmdletile, mis on tõesti lihtne Get-liik -i cmdleli kasutamisel.

Get-Service | Get-Member

Käesoleva artikli kohaldamisalast väljapoole jäävatel põhjustel nimetatakse omadusi ja meetodeid ühiselt klassi liikmeteks, mistõttu kasutate käsku Get-Member, et saada nimekiri kõigist meetoditest ja omadustest, mille objektil on. Siiski tagastab käsk cmdlet Get-Member ka teise olulise informatsiooni, aluseks oleva objekti tüübi. Eespool toodud pildil näeme, et Get-Service tagastab tüübi objektid:
Käesoleva artikli kohaldamisalast väljapoole jäävatel põhjustel nimetatakse omadusi ja meetodeid ühiselt klassi liikmeteks, mistõttu kasutate käsku Get-Member, et saada nimekiri kõigist meetoditest ja omadustest, mille objektil on. Siiski tagastab käsk cmdlet Get-Member ka teise olulise informatsiooni, aluseks oleva objekti tüübi. Eespool toodud pildil näeme, et Get-Service tagastab tüübi objektid:

System.ServiceProcess.ServiceController

Kuna PowerShell tegeleb objektidega ja mitte tekstiga, ei saa kõiki pipelülid [1] kasutades kõiki kampaaniaid ühendada. See tähendab, et peame leidma cmdlet, mis soovib süsteemi gaasijuhtme objekti System.ServiceProcess.ServiceController aktsepteerida.

Get-Command -ParameterType System.ServiceProcess.ServiceController

Pane tähele, et on olemas cmdlet Stop-Service; Vaatame abi selle eest.
Pane tähele, et on olemas cmdlet Stop-Service; Vaatame abi selle eest.

Get-Help –Name Stop-Service

Näib, et parameeter InputObject võtab sisendina kasutusele hulga ServiceController objekte. Tavaliselt, kui näete parameetrit, mille nimi on InputObject, aktsepteerib ta gaasijuhtme sisendit, kuid selleks, et olla kindel, vaatame selle parameetri täielikku abi.
Näib, et parameeter InputObject võtab sisendina kasutusele hulga ServiceController objekte. Tavaliselt, kui näete parameetrit, mille nimi on InputObject, aktsepteerib ta gaasijuhtme sisendit, kuid selleks, et olla kindel, vaatame selle parameetri täielikku abi.

Get-Help -Name Stop-Service –Full

Meie kahtlused olid õiged. Seega me teame järgmist:
Meie kahtlused olid õiged. Seega me teame järgmist:
  • Get-Service tagastab ServiceController objektid
  • Stop-Service'il on parameeter InputObject, mis võtab sisendina vastu ühe või mitu ServiceControllersit.
  • Parameeter InputObject aktsepteerib gaasijuhtme sisendit.

Selle teabe abil saame teha järgmist:

Get-Service -Name ‘Apple Mobile Device’ | Stop-Service

See on kõik selleks ajaks inimestele. Järgmine kord vaatame, kuidas me suudame torujuhtmes olevaid objekte vormindada, filtreerida ja võrrelda.
See on kõik selleks ajaks inimestele. Järgmine kord vaatame, kuidas me suudame torujuhtmes olevaid objekte vormindada, filtreerida ja võrrelda.

Kodutöö

Loe üles Objekti torujuhtme kaudu

Kui teil on küsimusi, võite mulle mulle @ tybgibb muljet avaldada või lihtsalt kommenteerida.

Soovitan: