Geeki kool: õppige, kuidas kasutada töökohti PowerShellis

Sisukord:

Geeki kool: õppige, kuidas kasutada töökohti PowerShellis
Geeki kool: õppige, kuidas kasutada töökohti PowerShellis

Video: Geeki kool: õppige, kuidas kasutada töökohti PowerShellis

Video: Geeki kool: õppige, kuidas kasutada töökohti PowerShellis
Video: The Last Reformation - The Beginning (2016) - FULL MOVIE - YouTube 2024, Aprill
Anonim
PowerShellil on neli töökohta - taustteosed, kaugtööd, WMI töökohad ja planeeritud töökohad. Liitu meiega, kui saame teada, mis need on ja kuidas me neid kasutada.
PowerShellil on neli töökohta - taustteosed, kaugtööd, WMI töökohad ja planeeritud töökohad. Liitu meiega, kui saame teada, mis need on ja kuidas me neid kasutada.

Vaadake kindlasti eelmise sarja artikleid:

  • Lugege, kuidas automatiseerida Windows PowerShelliga
  • Õpime PowerShellis kasutama kommuteid
  • PowerShellis Objektide kasutamise õppimine
  • PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine
  • Õpi Remotingi kasutamist PowerShellis
  • PowerShelli kasutamine arvutiteabe hankimiseks
  • PowerShelli kollektsioonidega töötamine

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

Taustteosed

Siiani on kõik, mida PowerShellis näitasin, olnud sünkroonne, mis tähendab, et me sisestasime midagi koopiasse ja ei suuda seda palju teha, kuni see käsk on täitmise lõpetanud. See on koht, kus taustal töökohti tuleb. Tausta käivitamiseks edastage töökäik lihtsalt Start-Jobi käsku Skriptiklapp.

Start-Job –Name GetFileList –Scriptblock {Get-ChildItem C: –Recurse}

Nüüd on meil vabadus teha seda, mida me soovime shelli sees, samal ajal kui see skriptikeel täidab taustal.
Nüüd on meil vabadus teha seda, mida me soovime shelli sees, samal ajal kui see skriptikeel täidab taustal.
Kui te uue töökoha käivitate, loob PowerShell selle töö jaoks uue tööobjekti. Kõigi töökohtade loendi saate igal ajal saada, käivitades Get-Jobi cmdlet.
Kui te uue töökoha käivitate, loob PowerShell selle töö jaoks uue tööobjekti. Kõigi töökohtade loendi saate igal ajal saada, käivitades Get-Jobi cmdlet.
Tööobjektid räägivad töökohtade staatusest. Näiteks ülaltoodud ekraanipildil näeme, et meil on BackgroundTob, mida nimetatakse GetFileList, mis töötab ikka veel, kuid on juba hakanud andmeid tagasi saatma. Kui mõnes punktis otsustate, et töö on liiga pikk, saate seda lihtsalt peatada, toruates seda Stop-Jobile.
Tööobjektid räägivad töökohtade staatusest. Näiteks ülaltoodud ekraanipildil näeme, et meil on BackgroundTob, mida nimetatakse GetFileList, mis töötab ikka veel, kuid on juba hakanud andmeid tagasi saatma. Kui mõnes punktis otsustate, et töö on liiga pikk, saate seda lihtsalt peatada, toruates seda Stop-Jobile.

Get-Job –Name GetFileList | Stop-Job

Siiski, kui olete töö lõpetanud, on kõik andmed, mida ta sai kätte kuni teie peatatud punkti, endiselt kättesaadavaks. Kuid küll on küll. PowerShellis saate töö tulemuste saamise korral kustutada. Selleks, et need jääksid, peate määrama Receive-Job'i pidamise lüliti parameetri.
Siiski, kui olete töö lõpetanud, on kõik andmed, mida ta sai kätte kuni teie peatatud punkti, endiselt kättesaadavaks. Kuid küll on küll. PowerShellis saate töö tulemuste saamise korral kustutada. Selleks, et need jääksid, peate määrama Receive-Job'i pidamise lüliti parameetri.

Get-Job –Name GetFileList | Receive-Job –Keep

Kui olete töö lõpetanud, on parim viis selle eemaldamiseks. Töö eemaldamiseks laadige see lihtsalt Remove-Job'i cmdletti.
Kui olete töö lõpetanud, on parim viis selle eemaldamiseks. Töö eemaldamiseks laadige see lihtsalt Remove-Job'i cmdletti.

Get-Job –Name GetFileList | Remove-Job

See eemaldab selle Get-Jobilt tagastatud töökohtade loendist.

Image
Image

Kaugtööd

Mõned õppetunnid tagasi nägime, kuidas me saame kasutada remotingut PowerShelli käskude käivitamiseks kaugarvutis, kasutades käsku Invoke-Command, kuid teadsite, et võite kasutada ka käsku Invoke käsku, et käivitada remoting töö taustal? Selleks lisage lihtsalt käsku -AsJob parameeter:

Invoke-Command -ComputerName Flash,Viper -Credential administrator -ScriptBlock {gci} –AsJob

See oli lihtne käsk ja peaks lõpule viima täideviimise, et saaksime vaadata meie töökoha staatust.
See oli lihtne käsk ja peaks lõpule viima täideviimise, et saaksime vaadata meie töökoha staatust.
Hmm, tundub, et see ebaõnnestus. See toob mind esimesse töökohta juurde. Kui loote PowerShellis mis tahes tüüpi uue töökoha, luuakse see lisaks ühele lapsele igale arvutile, kus te töötate, vastu ühe töökoha. Kui kasutate Get-Jobi cmdletti, näitab see ainult teie vanemate töökohti ja riigiomand on halvim stsenaarium, mis tähendab, et isegi kui käsk puudus ainult ühes sajast arvutist, siis ütlevad vanemate töökohad ebaõnnestus. Lapse tööde loendi vaatamiseks peate kasutama Parameetrit IncludeChildJob.
Hmm, tundub, et see ebaõnnestus. See toob mind esimesse töökohta juurde. Kui loote PowerShellis mis tahes tüüpi uue töökoha, luuakse see lisaks ühele lapsele igale arvutile, kus te töötate, vastu ühe töökoha. Kui kasutate Get-Jobi cmdletti, näitab see ainult teie vanemate töökohti ja riigiomand on halvim stsenaarium, mis tähendab, et isegi kui käsk puudus ainult ühes sajast arvutist, siis ütlevad vanemate töökohad ebaõnnestus. Lapse tööde loendi vaatamiseks peate kasutama Parameetrit IncludeChildJob.
Kui näete lähemalt, näete, et töö ainult ühe arvutiga ei suutnud, mis toob meid järgmisele gotikale. Kui proovite ja saadate tulemusi töö jaoks, kui määrate vanema töönime või ID-d, tagastab PowerShell kõik lapse töökohad. Probleem on selles, et kui mõnes lapse töökohas esineb viga, jäetakse meile punase teksti juurde.
Kui näete lähemalt, näete, et töö ainult ühe arvutiga ei suutnud, mis toob meid järgmisele gotikale. Kui proovite ja saadate tulemusi töö jaoks, kui määrate vanema töönime või ID-d, tagastab PowerShell kõik lapse töökohad. Probleem on selles, et kui mõnes lapse töökohas esineb viga, jäetakse meile punase teksti juurde.
See on võimalik kahel viisil. Esiteks, kui teate, milliseid arvuteid soovite tulemusi soovid, võite lihtsalt kasutada käsku Recieve -Job parameetri ComputerName.
See on võimalik kahel viisil. Esiteks, kui teate, milliseid arvuteid soovite tulemusi soovid, võite lihtsalt kasutada käsku Recieve -Job parameetri ComputerName.

Get-Job –Id 3 | Receive-Job –Keep –ComputerName Viper

Teise võimalusena võite saada konkreetsele lapsele tehtud töö tulemusi kasutades oma töö ID-d.
Teise võimalusena võite saada konkreetsele lapsele tehtud töö tulemusi kasutades oma töö ID-d.

Get-Job -Id 3 –IncludeChildJob

Image
Image

Get-Job -Id 5 | Receive-Job –Keep

Image
Image

WMI töökohad

WMI töökohad on palju sarnased kaugtöödega, nõudes ainult seda -AsJob-parameetrit, mis lisatakse Get-WmiObject'i cmdlet-le.

Image
Image
Kahjuks tähendab see seda, et nende suhtes kehtivad ka need saidid, mida ma mainisin Remote Jobsi jaotises.
Kahjuks tähendab see seda, et nende suhtes kehtivad ka need saidid, mida ma mainisin Remote Jobsi jaotises.

Planeeritud töökohad

Kolm viimast tööd, mida me vaatlesime, ei olnud püsivad, mis tähendab, et need on saadaval ainult teie praeguses seansis. Põhimõtteliselt tähendab see, et kui te tööle hakkate ja seejärel avaneb teine PowerShelli konsool ja käivitage Get-Job, ei näe te töökohti. Kuid pöörduge tagasi konsooli, kuhu töötasite välja, siis näete selle staatust. See on vastuolus Scheduled Jobsiga on püsivad. Põhimõtteliselt on Scheduled Job skriptikeel, mis töötab graafikus. Varem oli sama mõju saanud saavutada Windows Task Scheduler, mis on tõesti see, mis toimub kapoti all. Uue ajastatud töö loomiseks tehke järgmist.

Register-ScheduledJob -Name GetEventLogs -ScriptBlock {Get-EventLog -LogName Security -Newest 100} -Trigger (New-JobTrigger -Daily -At 5pm) -ScheduledJobOption (New-ScheduledJobOption -RunElevated)

Selles käskluses toimub suhteliselt palju, nii et laseksime seda murda.

  • Esiteks anname Scheduled Jobile GetEventLogsi nime.
  • Seejärel räägime sellest, et kui see käivitatakse, tahame, et see käivitab määratud skriptikloki sisu, mis sisuliselt jõuab turvalisuse sündmuste logi kõige uuemate 100 kirjeteni.
  • Järgmisena määratleme vallandaja. Kuna käivitusparameeter sisestamisel käivitusobjekti võtab, kasutasime käsku, mis genereerib päästiku, mis läheb iga päev kell 5 p.m.
  • Kuna me käsitleme sündmuste logi, peame käima administraatorina, mida saame määrata, luues uue ScheduledJobOptionobjekti ja edastades selle ScheduledJobOption parameetrile.
Kuna see on pisut teistsugune töökoht, peate kasutama ka teistsugust käsku, et saada masinasse kõigi planeeritud tööde loendi.
Kuna see on pisut teistsugune töökoht, peate kasutama ka teistsugust käsku, et saada masinasse kõigi planeeritud tööde loendi.

Get-ScheduledJob

Soovitan: