Geeki kool: esimese täieliku PowerShelli skripti kirjutamine

Sisukord:

Geeki kool: esimese täieliku PowerShelli skripti kirjutamine
Geeki kool: esimese täieliku PowerShelli skripti kirjutamine

Video: Geeki kool: esimese täieliku PowerShelli skripti kirjutamine

Video: Geeki kool: esimese täieliku PowerShelli skripti kirjutamine
Video: Tourist Trophy : Closer To The Edge - Full Documentary TT3D (Subtitles Available !!) - YouTube 2024, Märts
Anonim
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.
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 sarja artikleid:

  • Lugege, kuidas automatiseerida Windows PowerShelliga
  • Õpime PowerShellis kasutama kommuteid
  • PowerShellis Objektide kasutamise õppimine
  • PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine
  • Õpi Remotingi kasutamist PowerShellis
  • PowerShelli kasutamine arvutiteabe hankimiseks
  • PowerShelli kollektsioonidega töötamine
  • Lugege, kuidas kasutada töökohti PowerShellis
  • Vaadake, kuidas PowerShelli laiendada
  • Õpi PowerShelli muutujad, sisend ja väljund

Kirjutad oma esimese skripti

Esimene asi, mida me peame tegema, on leida viis, 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.

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

Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |

Select-Object -Property CSName,LastBootUpTime

Märkus. Ma pean oma koodi jagama kahes reas nii, et see kõik sobiks ekraanipildi juurde, kuid võite seda lihtsalt ühte reale kirjutada. Kui soovite seda jagada kahele reale, veenduge, et toru tähis on viimane täht 1. rida.

Nüüd klõpsake rohelise nupuga Run Script või klikkige koodi testimiseks oma klaviatuuril klahvi F5.
Nüüd klõpsake rohelise nupuga Run Script või klikkige koodi testimiseks oma klaviatuuril klahvi F5.
WMI-aeg võib olla natuke mõistatuslik. 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 kokku liita üheks stringiks. Õ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:
WMI-aeg võib olla natuke mõistatuslik. 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 kokku liita üheks stringiks. Õ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 -Property CSName,@{n=”Last Booted”;

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

Mida me teeme siin, on luua kohandatud vara nimega "Viimati käivitatud" ja täpsustada, et selle väärtus peab olema ToDateTime'i staatilise meetodi kutsumiseks praeguse torujuhtmeobjekti LastBootUpTime omaduses. Teie kood peaks nüüd välja nägema.

Koodi käivitamine annab palju paremini loetavat eelmise boot-aja.
Koodi käivitamine annab palju paremini loetavat eelmise boot-aja.
Nüüd, kui oleme rahul meie skripti põhifunktsioonidega, peame seda salvestama. Lihtsuse huvides päästa see järgmiselt:
Nüüd, kui oleme rahul meie skripti põhifunktsioonidega, peame seda salvestama. Lihtsuse huvides päästa see järgmiselt:

C:Get-LastBootTime.ps1

Nüüd lülitage ISE alumine pool sisse ja käivitage järgmine:
Nüüd lülitage ISE alumine pool 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.
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:

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

help C:Get-LastBootTime.ps1

Awesome, nii et nüüd võime täpsustada arvuti nime, mille jaoks me tahame saada uusim arvutinime parameetri käivitamise aeg. 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.
Awesome, nii et nüüd võime täpsustada arvuti nime, mille jaoks me tahame saada uusim arvutinime parameetri käivitamise aeg. 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.

[Parameter(Mandatory=$true)][string]$ComputerName

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

<#.SYNOPSIS Shows when last your PC started up..DESCRIPTION This is a WMI wrapper function to get the time that your PC last started up..PARAMETER ComputerName The name of the Computer you want to run the command against..EXAMPLE Get-LastBootTime -ComputerName localhost.LINK www.howtogeek.com #>

Kui kõik see on tehtud, peaksite lõpuks nägema selline skript.

Soovitan: