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.
.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.
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
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
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- 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
Kodutöö
Loe üles Objekti torujuhtme kaudu
Kui teil on küsimusi, võite mulle mulle @ tybgibb muljet avaldada või lihtsalt kommenteerida.