Geeki kool kirjutab oma esimese täieliku PowerShelli skripti
Paar nädalat tagasi näitas Geek teile, kuidas saate käsurea abil leida, millal teie arvuti viimati käivitati. Selles viimases Geek School for PowerShelli installeerimises kirjutame samale asjale korduvkasutatava PowerShelli käsu..
Lugege kindlasti seeria eelmisi artikleid:
- Lugege, kuidas Windowsi PowerShelli abil automatiseerida
- Õppimine kasutama Cmdleti PowerShellis
- Õppimine, kuidas kasutada objekte PowerShellis
- Vormindamine, filtreerimine ja võrdlemine PowerShellis
- Õpi kasutama Remotingit PowerShellis
- PowerShelli kasutamine arvutiteabe saamiseks
- Töötamine kogudega PowerShellis
- Lugege, kuidas kasutada töökohti PowerShellis
- Lugege, kuidas PowerShelli laiendada
- PowerShelli muutujate, sisendi ja väljundi õppimine
Esimese skripti kirjutamine
Esimene asi, mida me peame tegema, on leida viis, kuidas juurdepääsu otsitavale teabele juurde pääseda. Kuna tegemist on juhtimisalase informatsiooniga, peame ilmselt vaatama WMI kasutamist, millel on tõesti klass Win32_OperatingSystem, mis võimaldab teil vaadata operatsioonisüsteemi kohta täpset teavet, sealhulgas viimast käivitamist..
Nüüd, kui me teame, kust leiame otsitava teabe, avage ISE ja sisestage järgmine.
Get-WmiObject-klass Win32_OperatingSystem -arvuti nimi localhost |
Valige -objekt -Kinnisvara CSName, LastBootUpTime
Märkus: ma pidin oma koodi jagama kahe reaga, et see kõik sobiks ekraanipildi külge, kuid võta seda ühele reale. Kui otsustate jagada selle kahe rea vahel, siis veenduge, et toru märk on rea esimesel tähemärgil.
Nüüd klõpsa rohelisele nupule „Käivita skript” või vajuta koodi testimiseks klahvi F5.
WMI ajad võivad olla vähe salapärased. Sellega me mõtleme, kui vaatate LastBootUpTime'i vara, ütleb ta 2013-03-19 kell 18:26:21, kuid mingil põhjusel otsustasid WMI poisid kõik selle ühte stringiks koondada. Õnneks ei pea me muretsema stringi käsitsi käsitlemise pärast, sest seda on lihtsam viis, ehkki rohkem arenenud. Sellise nägemiseks peate muutma koodi valiku-objekti osa:
Select-Object -Parerty CSName, @ n = ”Viimane bootimine;
e = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)
See, mida me siin teeme, loob kohandatud omaduse nimega "Viimane bootimine" ja täpsustab, et selle väärtus peab olema tingitud ToDateTime staatilise meetodi kutsumisest praeguse torujuhtme objekti LastBootUpTime omadusele. Teie kood peaks nüüd välja nägema.
Koodi käivitamine annab nüüd palju loetavama viimase käivitusaja.
Nüüd, kui oleme rahul meie skripti põhifunktsioonidega, peame selle salvestama. Lihtsuse huvides salvestage see järgmiselt:
C: Get-LastBootTime.ps1
Nüüd liikuge ISE alumisele poolele ja käivitage järgmine:
C: Get-LastBootTime.ps1
Suurepärane! Meie skript toimib ootuspäraselt, kuid meie skriptiga on veel üks probleem. Me kodeerisime arvuti nime, mille jaoks tahame viimase käivitusaja. Kõvakoodide väärtuste asemel peaksime pigem andma parameetri, nii et see, kes skripti kasutab, saab valida, millist arvutit nad skripti kasutavad. Selleks minge oma skripti ülaosale ja tehke järgmist.
param (
[string] $ ComputerName
)
Seejärel asenda hardcoded localhost väärtus $ ComputerName muutujaga. Teie skript peaks nüüd välja nägema:
Salvestage oma skript, seejärel tagasi ISE alumisse poole ja vaadake oma skripti abi.
abi C: Get-LastBootTime.ps1
Awesome, nii et nüüd saame määrata arvuti nime, millega me soovime saada uue arvutiName parameetri kasutamiseks viimase käivitusaja. Kahjuks on veel mõned asjad valesti. Esiteks, ComputerName parameeter on vabatahtlik ja teiseks, see on kõige karmim abivalmis, mida ma kunagi näinud olen, nii et lahendame need probleemid kiiresti. ComputerName parameetri kohustuslikuks muutmiseks muutke parameetri sisu järgmisteks.
[Parameeter (kohustuslik = $ true)] [string] $ ComputerName
Parema abifaili tegemisel on kõige tavalisem viis kasutada kommentaaripõhist abi. See tähendab, et me lisame ainult pikema kommentaariga skripti tippu.
<#
.SÜNOPSIS
Näitab, millal viimane arvuti käivitati.
.KIRJELDUS
See on WMI ümbrisfunktsiooni funktsioon, et saada aega, mida teie arvuti viimati käivitas.
.PARAMETER ComputerName
Arvuti nimi, mida soovite käsu vastu võtta.
.NÄIDE
Get-LastBootTime -arvuti nimi localhost
.LINK
www.howtogeek.com
#>
Kui kõik on tehtud, peaksite saama sellist skripti.
Lähme nüüd ja vaadake meie uut abifaili.
Ahhh, otsin suurepäraselt! Nüüd, kui meie skript on valmis, on meil üks viimane asi: testimine. Selleks väljun ISEst välja ja juhin tagasi PowerShelli konsooli, et saaksime veenduda, et anomaaliaid ei ole..
Kui alustate lihtsast ühest vooderdist ja hoiate seda lihtsalt sellisel viisil, nagu me selles juhendis tegime, siis sa ei räägi sellest enam aega. See on kõik selleks ajaks inimesed, näeme teid järgmisel Geek kooli paigaldamisel.