15Sep

Geeki kool: esimese täieliku PowerShelli skripti kirjutamine

click fraud protection

Paar nädalat tagasi näitas Geek teile, kuidas saate käsuviiba leida, kui arvuti käivitati viimati. Selle PowerShelli Geeki kooli viimase installimise käigus kirjutame samale asjale korduvkasutatavat PowerShelli käsku.

Vaadake kindlasti eelmise seeria artikleid:

  • Õppige, kuidas automatiseerida Windows PowerShelliga
  • PowerShellis kasutatavaid kommuteid õppides
  • Õppige, kuidas kasutada objekte PowerShellis
  • PowerShelli õppimise vormindamisel, filtreerimisel ja võrdlemisel
  • Õppige kasutama Remotingi kasutamistPowerShell
  • PowerShelli kasutamine arvutiteabe saamiseks
  • PowerShelli
  • kollektsioonidega töötamine Uurige, kuidas kasutada PowerShellis
  • -i töökohti. Õpi PowerShelli
  • õppematerjalide PowerShelli muutujate sisestamist ja väljundit

kirjutades oma esimese skripti

Esimene asi, mida me peame tegema, onleida viisi, kuidas pääseda otsitavale teabele. Kuna me käsitleme juhtimisteavet, peaksime ilmselt vaatama WMI-i kasutamist, millel on tõepoolest Win32_OperatingSystem klass, mis võimaldab teil vaadata oma operatsioonisüsteemi kohta käivat teavet, sealhulgas viimast käivitamisaega.

instagram viewer

Nüüd, kui me teame, kus me leiame otsitavat teavet, avage ISE ja sisestage järgmine.

Get-WmiObject-klass Win32_OperatingSystem -ComputerName localhost |

Select-Object -Väärtus CSName, LastBootUpTime

Märkus: ma pean oma koodi jagama kahes reas nii, et see kõik sobiks ekraanipildi juurde, kuid võite kirjutada selle ühele reale. Kui otsustate jagada selle kahe liini vahel, veenduge, et toru tähis on viimane joon rida 1.

Nüüd klõpsake rohelise käsku Run Script või vajutage klaviatuuri F5 klahvi, et testida koodi.

WMI ajad võivad olla veidi segased. Sellega mõtleme siis, kui vaatate LastBootUpTime'i vara, siis ütleb see 2013-03-19 kell 18:26:21, kuid mõnel põhjusel otsustas WMI poisid seda ühte stringi kokku liita.Õnneks me ei pea muretsema stringi käsitsi parsimisel, kuna sellel on lihtsam viis seda teha, ehkki veelgi arenenud. Peate koodi Select-Object osa muutma järgmiselt:

Select-Object-Properties CSName, @( n = "Viimati käivitati";

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

Mida me siin teeme, on luua kohandatud vara nimega "Last Booted" ja täpsustada, et selle väärtus peab olema ToDateTime staticmeetod praeguse torujuhtmeobjekti LastBootUpTime omaduste jaoks. Teie kood peaks nüüd välja nägema.

koodi käivitamine annab palju paremini loetavat eelmise boot-aja.

Nüüd, kui oleme rahul meie skripti põhifunktsioonidega, peame seda salvestama. Lihtsuse huvides salvestage see järgmiselt:

C: \ Get-LastBootTime.ps1

Nüüd lülitage ISE alumises osas sisse ja käivitage järgmine:

C: \ Get-LastBootTime.ps1

suurepärane! Meie skript toimib ootuspäraselt, kuid meie skriptiga on veel üks probleem. Me kirjutasime selle arvuti nime, kuhu tahame saada viimast käivitamisaega. Väärtuste kõvakoodide asemel peaksime pigem andma parameetri, nii et igaüks, kes skripti kasutab, saaks valida, kuhu nad skripti käitavad. Selleks minge oma skripti üles ja tehke järgmist.

param(
[string] $ ComputerName
)

Seejärel asendage hardcoded localhost väärtus $ ComputerName muutujaga. Teie skript peaks nüüd välja nägema nii:

Salvestage oma skript, siis pöörake tagasi ISE alumises osas ja vaadake oma skripti abi.

aidata C: \ Get-LastBootTime.ps1

Awesome, nii et nüüd võime määrata arvuti uue nime, mille abil soovime saada uue arvutinumbriga parameetri viimast käivitamisaega. Kahjuks on veel mõned asjad valed. Esiteks on parameeter ComputerName valikuline, ja teiseks, see on kõige põnevam kasulik, mida ma kunagi näinud olen, nii et saaksime neid probleeme kiiresti lahendada. Arvutiparameetri parameetri kohustuslikuks muutmiseks muutke parameetri sisu järgmiselt.

[Parameeter( kohustuslik = $ true)] [string] $ ArvutiName

Parema abifaili tegemisel on kõige tavalisem meetod kommenteeritud abi kasutamiseks. See tähendab, et lisame skripti ülemisele lisale täiesti pikka kommentaari.

. SYNOPSIS
Näitab, kui teie arvuti käivitati viimati.
. DESCRIPTION
See on WMI mähkimisfunktsioon, et saada aeg, mil teie arvuti viimati käivitas.
. PARAMETER ComputerName
Arvuti nimi, mida soovite käsku käivitada.
. EXAMPLE
Get-LastBootTime -ComputerName localhost
. LINK
www.howtogeek.com
# & gt;

Kui see kõik on tehtud, peaksite saama skripti, mis näeb välja selline.

Lähme nüüd ja kontrollige uut abifaiti.

Ahhh, imeline! Nüüd, kui meie skript on valmis, on meil üks viimane asi: testimine. Selleks ma lähen ISE-st välja ja mine tagasi PowerShelli konsooli lihtsalt nii, et saaksime veenduda, et puuduvad kõrvalekalded.

Kui alustate lihtsa liinilaevaga ja hoiate selle peale nagu see, mida tegi selles juhendis, siis saate selle rippuda. See on kõik selleks ajaks inimestele, kes näevad teid Geeki kooli järgmises paigas.