Koduleht » kuidas » Geeki kool kirjutab oma esimese täieliku PowerShelli skripti

    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.