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}
Get-Job –Name GetFileList | Stop-Job
Get-Job –Name GetFileList | Receive-Job –Keep
Get-Job –Name GetFileList | Remove-Job
See eemaldab selle Get-Jobilt tagastatud töökohtade loendist.
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
Get-Job –Id 3 | Receive-Job –Keep –ComputerName Viper
Get-Job -Id 3 –IncludeChildJob
Get-Job -Id 5 | Receive-Job –Keep
WMI töökohad
WMI töökohad on palju sarnased kaugtöödega, nõudes ainult seda -AsJob-parameetrit, mis lisatakse Get-WmiObject'i cmdlet-le.
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.
Get-ScheduledJob