Noteikti izlasiet iepriekšējos sērijas rakstus:
- Uzziniet, kā automatizēt Windows ar PowerShell
- Mācīšanās lietot moduļus PowerShell
- Mācīšanās kā lietot objektus PowerShell
- Mācību formēšana, filtrēšana un salīdzināšana PowerShell
- Uzziniet, kā izmantot utilizācijas PowerShell
- Izmantojot PowerShell, lai iegūtu informāciju par datoru
- Darbs ar kolekcijām PowerShell
Un visu nedēļu pieskarieties atlikušajām sērijām.
Fona darbs
Līdz šim viss, ko es tev PowerShell parādīju, ir bijis sinhronais, tas nozīmē, ka mēs kaut ko iekļaujam čaulā un patiešām nevaram to paveikt, līdz šī komanda ir pabeigusi izpildi. Šajā vietā ir iekļauti fona darbi. Lai sāktu fonu, darbs vienkārši nosūta skriptu bloku uz Start-Job cmdlet.
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
Tas noņems to no darbavietu saraksta, kurus Get-Job atdod.
Attālās darbavietas
Pirms dažām stundām mēs paskatījāmies, kā mēs varam izmantot atkārtotu izmantošanu, lai izpildītu PowerShell komandas attālajā datorā, izmantojot Invoke-Command, bet vai jūs zinājāt, ka varat arī izmantot Invoke-Command, lai sāktu atkārtotu darbu fonā? Lai to izdarītu, komandas beigās vienkārši pievienojiet -AsJob parametru:
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 darbs
WMI darbavietas ir tādas pašas kā Remote Jobs, un tikai Get-WmiObject komandu komandai ir jāpievieno tikai parametrs -AsJob.
Plānotas darba vietas
Pēdējie trīs darbavietu veidi, kurus mēs aplūkojām, nebija noturīgi, tas nozīmē, ka tie ir pieejami tikai jūsu pašreizējā sesijā. Būtībā tas nozīmē, ka, ja jūs sākat darbu un pēc tam atverat citu PowerShell konsole un palaižat Get-Job, jūs neredzēsiet nevienu darbu. Tomēr atgriezieties konsolei, no kuras jūs atbrīvojāt darbu, jūs varēsit redzēt tā statusu. Tas ir pretstatā plānotajām darbavietām, kuras ir noturīgas. Būtībā Scheduled Job ir skriptu bloks, kas darbojas pēc grafika. Agrāk to pašu ietekmi varēja panākt, izmantojot Windows Task Scheduler, kas patiešām notiek saskaņā ar kapuci. Lai izveidotu jaunu plānoto darbu, veicam sekojošo:
Register-ScheduledJob -Name GetEventLogs -ScriptBlock {Get-EventLog -LogName Security -Newest 100} -Trigger (New-JobTrigger -Daily -At 5pm) -ScheduledJobOption (New-ScheduledJobOption -RunElevated)
Šajā komandā notiek diezgan daudz, tāpēc atlaidīsim to.
- Pirmkārt, mēs piešķiram savam plānotajam darbam nosaukumu GetEventLogs.
- Tad mēs pasakām, ka tad, kad tas tiek aktivizēts, mēs gribam, lai tas palaistu norādītā skripta bloka saturu, kurš pamatā saņem 100 jaunākos drošības notikumu žurnāla ierakstus.
- Tālāk mēs norādām aktivizētāju. Tā kā sprūda parametrs veic ievades objektu kā spriegumu, mēs izmantojām komandu, kas satur komandu, lai ģenerētu aktivizētāju, kas darbosies katru dienu plkst. 5:00.
- Tā kā mums ir darīšana ar notikumu žurnālu, mums jāstrādā kā administratoram, ko mēs varam norādīt, izveidojot jaunu ScheduledJobOption objektu un nododot to parametram ScheduledJobOption.
Get-ScheduledJob