Muista lukea sarjan aiemmat artikkelit:
- Opi käyttämään automaattista Windowsia PowerShellillä
- Learning käyttämään Cmdlets PowerShellissä
- Oppiminen esineiden käyttämisessä PowerShellissä
- Oppimisen muotoilu, suodatus ja vertailu PowerShellissä
- Opi käyttämään etäisyyttä PowerShellissä
- PowerShellin käyttäminen tietokoneen tietojen saantiin
- PowerShellin kokoelmien käsittely
Ja pysy kuulolla koko sarjan koko viikon ajan.
Taustatiedot
Tähän mennessä kaikki, mitä olen osoittanut PowerShellissä, on synkronoitu, eli kirjoitamme jotain kuoriin ja emme voi todella tehdä paljon ennen kuin komento on päättynyt. Tällöin taustatyöt tulevat sisään. Taustan aloittamiseksi työ yksinkertaisesti ohittaa komentojonon Start-Job-cmdlet-komentoon.
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
Tämä poistaa sen Get-Jobin palauttamien töiden luettelosta.
Etäkäyttö
Muutama tunne sitten katsoimme, kuinka voimme käyttää kaukosäädintä PowerShell-komentoiden suorittamiseen etäkoneella Invoke-Commandin avulla, mutta tiesitkö, että voit myös käyttää Invoke-Command-ohjelmaa aloittaaksesi kaukosäätimen työn taustalla? Voit tehdä niin yksinkertaisesti lisätä -AsJob-parametrin komennon loppuun:
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 työpaikat
WMI-työt ovat paljon samoja kuin etätoimistot, jotka tarvitsevat vain -AsJob-parametrin lisäämisen Get-WmiObject-cmdlettiin.
Ajoitetut työpaikat
Viimeiset kolmentyyppiset työpaikat, joita tarkastelimme, eivät olleet pysyviä, joten ne ovat käytettävissä vain nykyisessä istunnossasi. Periaatteessa tämä tarkoittaa sitä, että jos aloitat työn ja avaat toisen PowerShell Consolen ja suoritat Get-Jobin, et näe mitään työpaikkoja. Palaa kuitenkin takaisin konsoliin, josta potkittiin työtä, ja näet sen tilan. Tämä on vastoin ajoitettuja työtehtäviä, jotka ovat pysyviä. Periaatteessa aikataulu on skripti, joka toimii aikataulussa. Aiemmin sama vaikutus olisi voitu saavuttaa käyttämällä Windows Task Scheduler -ohjelmaa, joka on oikeastaan mitä tapahtuu hupparin alla. Voit luoda uuden ajoitetun työn seuraavasti:
Register-ScheduledJob -Name GetEventLogs -ScriptBlock {Get-EventLog -LogName Security -Newest 100} -Trigger (New-JobTrigger -Daily -At 5pm) -ScheduledJobOption (New-ScheduledJobOption -RunElevated)
Tässä komennossa on melko paljon, joten hajottakaamme sen.
- Ensinnäkin annamme ajastetun työn nimeksi GetEventLogs.
- Sitten kerromme, että käynnistettäessä haluamme, että se ajaa määritetyn komentomerkin sisällön, joka pohjimmiltaan saa turvallisuuden tapahtumalokin uusimmat 100 merkinnät.
- Seuraavaksi määrittelemme liipaisimen. Koska laukaisuparametri ottaa liipaisuobjektin tulona, käytimme sulkeutuva komento laukaista, joka poistuu joka päivä klo 5.
- Koska olemme tekemisissä tapahtumalokin kanssa, meidän pitää toimia ylläpitäjänä, jonka voimme määrittää luomalla uusi ScheduledJobOption -objekti ja siirtämällä se ScheduledJobOption-parametriin.
Get-ScheduledJob