15Sep

Geek šola: pisanje vašega prvega popolnega PowerShell skripta

click fraud protection

Pred nekaj tedni je The Geek pokazal, kako lahko uporabite ukazni poziv, da ugotovite, kdaj ste nazadnje začeli računalnik. V tej zadnji namestitvi Geek šole za PowerShell bomo napisali večkratni ukaz PowerShell, da naredimo isto stvar.

Bodite prepričani, da preberete prejšnje članke v seriji:

  • Več o tem, kako avtomatizirati Windows z PowerShell
  • Učenje za uporabo Cmdlets v PowerShellu
  • Učenje Kako uporabljati predmete v PowerShell
  • Učne oblike, filtriranje in primerjanje v PowerShell
  • Naučite se uporabljati remoting vPowerShell
  • Uporaba PowerShell za pridobivanje informacij o računalniku
  • Delo z zbirkami v PowerShell
  • Več o uporabi delovnih mest v PowerShellu
  • Več o tem, kako razširiti PowerShell
  • Učenje PowerShell spremenljivk, vnosa in izhoda

Pisanje prvega skripta

Najprej moramo storiti,poiščite način dostopa do informacij, ki jih iščemo. Ker se ukvarjamo z informacijami o upravljanju, bomo verjetno morali razmisliti o uporabi WMI, ki ima razred, imenovan Win32_OperatingSystem, ki vam omogoča ogled podrobnih informacij o operacijskem sistemu, vključno z zadnjim začetkom.

instagram viewer

Zdaj, ko vemo, kje lahko najdemo informacije, ki jih iščemo, odprite ISE in vnesite naslednje.

Get-WmiObject -Class Win32_OperatingSistem-ComputerName localhost |

Select-Object -Property CSName, LastBootUpTime

Opomba: Moral sem razdeliti svojo kodo v dve vrstici, tako da se vse prilega snemanju, vendar ga lahko vnesete na eno vrstico.Če ga želite razdeliti na dve vrstici, se prepričajte, da je znak cevi zadnji znak na liniji 1.

Zdaj kliknite na zeleni gumb "Run Script" ali pritisnite tipko F5 na tipkovnici, da preizkusite kodo.

časi WMI so lahko malo kriptični. S tem mislimo, če pogledate lastnost LastBootUpTime, pravi: 2013-03-19 ob 18:26:21, toda zaradi tega so se fantje WMI odločili, da vse to združijo v en niz. Na srečo z nami ni treba skrbeti za ročno razčlenjevanje nizov, saj je to lažji način, čeprav bolj napreden. Spremeniti morate del kode Select-Object, ki bo videti takole:

Select-Object -Property CSName, @{ n = "Last Booted";

e ={ [Management. ManagementDateTimeConverter]: : ToDateTime( $ _. LastBootUpTime)}}

Kaj počnemo tukaj je ustvariti lastnost po meri, imenovano "Zadnja zagnana", in navaja, da mora biti njena vrednost posledica klicanja statičnega toDateTimemetoda lastnosti LastBootUpTime trenutnega plinovoda. Vaša koda mora zdaj videti tako.

Zdaj bo koda sedaj prinesla veliko bolj berljiv zadnji čas zagona.

Zdaj, ko smo zadovoljni z osnovno funkcionalnostjo našega skripta, ga moramo shraniti. Za preprostost jo shranimo, kot sledi:

C: \ Get-LastBootTime.ps1

Zdaj preklopite na spodnjo polovico ISE in zaženite naslednje:

C: \ Get-LastBootTime.ps1

Odlično! Naš scenarij deluje po pričakovanjih, vendar še vedno obstaja problem z našim skriptom. Trdili smo ime računalnika, za katerega želimo dobiti zadnji čas zagona. Namesto težkih vrednosti, bi morali raje predložiti parameter, tako da lahko kdorkoli, ki uporablja skript, izbere, na katerem računalniku vodijo scenarij.Če želite to narediti, pojdite na vrh svojega scenarija in naredite naslednje.

param(
[niz] $ ComputerName
)

Nato zamenjajte kodno vrednost lokalnega gostitelja s spremenljivko $ ComputerName. Vaš skript naj bi zdaj izgledal takole:

Shranite svoj skript, nato pa se pomaknite do spodnje polovice ISE in si oglejte pomoč za svoj skript.

pomoč C: \ Get-LastBootTime.ps1

Awesome, zato zdaj lahko določimo ime računalnika, za katerega želimo dobiti zadnje čase zagona za uporabo našega novega parametra ComputerName. Na žalost je še nekaj stvari narobe. Prvič, parameter ComputerName je neobvezen in drugič, to je najkoristnejša pomoč, ki sem jo kdaj videl, zato hitro odpravimo te težave. Da bi parameter ComputerName postal obvezen, spremenite vsebino param bloka na naslednje.

[Parameter( Obvezno = $ true)] [niz] $ ComputerName

Kot je za izdelavo boljše datoteke pomoči, je najpogostejši način, da uporabite pomoč, ki temelji na komentarjih. To pomeni, da dodamo še dodaten dolg komentar na vrh scenarija.

& lt; #
. SYNOPSIS
Prikazuje, ko se je vaš računalnik začel nazadnje.
. DESCRIPTION
To je funkcija WMI ovitka, da dobite čas, ko se je vaš računalnik nazadnje zagnal.
. PARAMETER ComputerName
Ime računalnika, s katerim želite zagnati ukaz.
. EXAMPLE
Get-LastBootTime-računalniško ime lokalnega gostitelja
. LINK
www.howtogeek.com
# & gt;

Ko se vse to naredi, morate končati s skriptom, ki je videti tako.

Zdaj pojdimo in preverimo našo novo datoteko pomoči.

Ahhh, ki je videti super! Zdaj, ko je naš skript dokončan, imamo še eno zadnjo stvar: testiranje. Za to bom izstopil iz ISE-ja in se vrnil nazaj v konzolo PowerShell, da bi se lahko prepričali, da ni nobenih anomalij.

Če začnete z enim preprostim oblogo in se pri tem zgrajujete tako, kot smo naredili v tem priročniku, ga boste hitro obesili. To je vse za tokrat, ljudje, vidimo se v naslednji namestitvi šole Geek.