/ / Geek School: Uzziniet, kā izmantot vakances PowerShell

Geek skola: uzziniet, kā izmantot vakances pakalpojumā PowerShell

PowerShell ir četru veidu darbi - fona darbi, attālie darbi, WMI darbi un plānotie darbi. Pievienojieties mums, kad mēs uzzinām, kas tie ir un kā mēs tos varam izmantot.

Noteikti izlasiet iepriekšējos sērijas rakstus:

  • Uzziniet, kā automatizēt Windows, izmantojot PowerShell
  • Iemācīšanās lietot Cmdlets pakalpojumā PowerShell
  • Mācības, kā lietot objektus programmā PowerShell
  • Formatēšanas, filtrēšanas un salīdzināšanas apguve programmā PowerShell
  • Uzziniet, kā lietot Remote programmā PowerShell
  • Izmantojot PowerShell, lai iegūtu informāciju par datoru
  • Darbs ar kolekcijām pakalpojumā PowerShell

Un visu nedēļu sekojiet līdzi pārējām sērijām.

Fona darbi

Līdz šim viss, ko esmu jums parādījisProgramma PowerShell ir bijusi sinhronizēta, kas nozīmē, ka mēs kaut ko ierakstām čaumalā, un mēs tik tiešām nevaram daudz paveikt, kamēr šī komanda nav pabeigusi izpildi. Šeit nāk fona darbi. Lai sāktu fona darbu, vienkārši nododiet skriptu bloku cmdlet Start-Job.

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

attēls

Tagad mēs varam brīvi darīt visu, ko vēlamies apvalkā, kamēr šis skriptu bloks tiek izpildīts fonā.

attēls

Sākot jaunu darbu, PowerShell izveido jaunu darba objektu, kas apzīmē šo darbu. Jebkurā laikā varat iegūt visu darbu sarakstu, palaižot cmdlet Get-Job.

attēls

Darba objekti stāsta par. Statusudarba vietas. Piemēram, iepriekš redzamajā ekrānuzņēmumā mēs redzam, ka mums ir BackgroundJob ar nosaukumu GetFileList, kas joprojām darbojas, bet jau ir sācis atgriezt datus. Ja kādā brīdī nolemjat, ka darbs tiek veikts pārāk ilgi, varat to viegli apturēt, pievienojot to Stop-Job.

Get-Job - nosaukums GetFileList | Stop-Job

attēls

Tomēr, kad esat pārtraucis darbu, neatkarīgi no tādati, ko tā saņēmusi līdz brīdim, kad jūs tos pārtraucāt, joprojām ir pieejami. Tomēr ir getcha. Kad saņemat darba rezultātus, pakalpojumā PowerShell tie tiek izdzēsti. Lai tie paliktu, jums jānorāda saņemšanas-darba saglabāšanas slēdža parametrs.

Get-Job - nosaukums GetFileList | Saņemt darbu - uzturēt

attēls

Kad esat pabeidzis darbu, ieteicams to noņemt. Lai noņemtu darbu, vienkārši ievietojiet to cmdlet Remove-Job.

Get-Job - nosaukums GetFileList | Noņemt-darbs

Tas tiks noņemts no to darbu saraksta, kurus atgriezusi Get-Job.

attēls

Attālie darbi

Pirms dažām nodarbībām mēs apskatījām, kā mēs varam izmantotRemote, lai izpildītu PowerShell komandas attālajā mašīnā, izmantojot komandu Invoke-Command, bet vai jūs zinājāt, ka varat izmantot arī komandu Invoke-Command, lai sāktu attālo darbu fonā? Lai to izdarītu, komandas beigās vienkārši pievienojiet parametru –AsJob:

Invoke-Command -DatorName Flash, Viper -Credential administrators -ScriptBlock {gci} –AsJob

attēls

Tā bija vienkārša komanda, kurai jau bija jābūt pabeigtai izpildei, tāpēc varēsim aplūkot mūsu darba statusu.

attēls

Hmm, izskatās, ka tas neizdevās. Tas mani atved uz manu pirmo darbu ar darbu. Izveidojot jebkura veida jaunu darbu PowerShell, tas papildus vienam bērna darbam izveido vienu vecāku darbu katram datoram, ar kuru jūs darbināt šo darbu. Ja izmantojat cmdlet Get-Job, tas parāda tikai vecāku darbus, un valsts īpašums ir sliktākā gadījuma scenārijs, kas nozīmē, ka pat tad, ja komanda neizdevās izpildīt tikai vienu no simts datoriem, vecāku darbu stāvoklis teiks neizdevās. Lai skatītu bērnu darbu sarakstu, jums jāizmanto parametrs IncludeChildJob.

attēls

Ja paskatīsities tuvāk, redzēsit, ka darbs paveicapatiešām neizdodas tikai vienā datorā, kas mūs ved uz nākamo. Mēģinot iegūt darba rezultātus, ja norādāt vecāka darba vārdu vai ID, PowerShell atgriezīs datus no visiem bērnu darbiem. Problēma ir tā, ka, ja kādā no bērnu darbiem ir radusies kļūda, mums tiks atstāts sarkans teksts.

attēls

Ir divi veidi, kā to novērst. Pirmkārt, ja jūs zināt, kādiem datoriem vēlaties iegūt rezultātus, varat vienkārši izmantot cmdlet Recieve –Job parametru ComputerName.

Get-Job –Id 3 | Saņemšanas darbs –Uzturēt –datoru nosaukums Viper

attēls

Alternatīvi, jūs varat iegūt rezultātus no konkrēta bērna darba, izmantojot tā darba ID.

Iegūt darbu -Id 3 –IetvertChildJob

attēls

Get-Job -Id 5 | Saņemt darbu - uzturēt

attēls

WMI darbavietas

WMI darbi ir gandrīz tādi paši kā attālie darbi, kuriem cmdlet Get-WmiObject jāpievieno tikai parametrs –AsJob.

attēls

attēls

Diemžēl tas nozīmē, ka uz viņiem attiecas arī tie paši getchas, kurus es minēju sadaļā Attālie darbi.

Plānoti darbi

Pēdējie trīs darba veidi, kurus mēs apskatījām, bijanav noturīgas, kas nozīmē, ka tie ir pieejami tikai jūsu pašreizējā sesijā. Būtībā tas nozīmē, ka, ja jūs izvēlaties darbu un pēc tam atverat citu PowerShell konsoli un palaižat Get-Job, jūs neredzēsit nevienu darbu. Tomēr atgriezieties konsolē, no kuras sākāt darbu, jūs varēsit redzēt tā statusu. Tas ir pretstatā plānotajiem darbiem, kuri ir noturīgas. Būtībā plānotais darbs ir skriptu blokskas notiek pēc grafika. Agrāk tādu pašu iespaidu varēja panākt, izmantojot Windows uzdevumu plānotāju, kas patiešām notiek zem pārsega. Lai izveidotu jaunu plānoto darbu, mēs rīkojamies šādi:

Reģistrēties plānotajam darbam -Nosaukums GetEventLogs -ScriptBlock {Get-EventLog -LogName Drošība -Newest 100} -Trigger (New-JobTrigger -Diena -At 17:00) -PlānotāsJobOption (New-ScheduledJobOption -RunElevated)

Šajā komandā notiek diezgan daudz, tāpēc sadalīsim to.

  • Pirmkārt, savam plānotajam darbam mēs piešķiram GetEventLogs vārdu.
  • Pēc tam mēs sakām, ka, palaižot, mēs vēlamies, lai tas palaistu norādītā skripta bloka saturu, kas pamatā iegūst jaunākos 100 drošības notikumu žurnāla ierakstus.
  • Tālāk mēs norādām sprūdu. Tā kā sprūda parametrā tiek izmantots sprūda objekts kā ievade, mēs izmantojām iekavās norādītu komandu, lai ģenerētu sprūdu, kas izslēgsies katru dienu pulksten 17:00.
  • Tā kā mums ir darīšana ar notikumu žurnālu, mums jādarbojas kā administratoram, kuru mēs varam norādīt, izveidojot jaunu ScheduledJobOption objektu un nododot to parametram ScheduledJobOption.

attēls

Tā kā tas ir nedaudz atšķirīgs darba veids, jums būs jāizmanto arī cita komanda, lai izgūtu visu mašīnā ieplānoto darbu sarakstu.

Darba grafiks

attēls

Tas ir viss, kas tam ir.