Geek-koulu kirjoittaa ensimmäisen täyden PowerShell-skriptin
Muutama viikko sitten Geek näytti, miten voit käyttää komentoriviä löytääksesi, milloin tietokone käynnistettiin viimeksi. Tässä viimeisessä Geek School for PowerShellin asennuksessa aiomme kirjoittaa uudelleenkäytettävän PowerShell-komennon tekemään saman asian.
Muista lukea sarjan aiemmat artikkelit:
- Opi automatisoimaan Windows PowerShellillä
- Oppiminen käyttämään Cmdlet-tiedostoja PowerShellissä
- Opi käyttämään esineitä PowerShellissä
- Oppimisen muotoilu, suodatus ja vertailu PowerShellissa
- Opi käyttämään Remotingia PowerShellissä
- PowerShellin käyttäminen tietokoneen tietojen saamisessa
- Työskentely kokoelmien kanssa PowerShellissä
- Opi käyttämään työpaikkoja PowerShellissä
- Opi jatkamaan PowerShellia
- PowerShell-muuttujien oppiminen, tulo ja lähtö
Ensimmäisen komentosarjan kirjoittaminen
Ensimmäinen asia, joka meidän on tehtävä, on löytää tapa tutustua etsimiin tietoihin. Koska käsittelemme hallintotietoja, meidän on todennäköisesti tarkasteltava WMI: n käyttöä, jolla on todellakin luokka nimeltä Win32_OperatingSystem, jonka avulla voit tarkastella operatiivisesta järjestelmästäsi tietoja, mukaan lukien viimeinen käynnistystapa..
Nyt tiedämme, mistä löydämme etsimämme tiedot, avaa ISE ja kirjoita seuraava.
Get-WmiObject-luokka Win32_OperatingSystem -tietokoneen nimi localhost |
Valitse -objekti -Kiinteistö CSName, LastBootUpTime
Huomautus: Minun oli jaettava koodi kahteen riviin, jotta kaikki mahtuisi kuvakaappaukseen, mutta voit kirjoittaa sen yhdelle riville. Jos päätät jakaa sen kahteen riviin, varmista, että putken merkki on viimeinen merkki rivillä 1.
Testaa koodi nyt napsauttamalla vihreää ”Run Script” -painiketta tai painamalla näppäimistön F5-näppäintä.
WMI-ajat voivat olla hieman salaperäisiä. Tällä tarkoitetaan, jos katsot LastBootUpTime-ominaisuutta, se sanoo 2013-03-19 klo 18:26:21, mutta jostain syystä WMI-kaverit päättivät yhdistää kaiken tämän yhdeksi merkkijonoksi. Meille onneksi meidän ei tarvitse huolehtia merkkijonon manuaalisesta jäsentämisestä, koska on helpompi tapa tehdä se, vaikkakin edistyneempi. Sinun on muutettava koodin Select-Object-osa, jotta se näyttää näin:
Select-Object -Pererty CSName, @ n = ”Last Booted”;
e = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)
Täällä tehdään luomalla mukautettu ominaisuus nimeltä ”Viimeinen käynnistys” ja määritellään, että sen arvon tulee olla seurausta ToDateTime-staattisen menetelmän kutsumisesta nykyisen putkilinjan objektin LastBootUpTime-ominaisuudelle. Koodisi pitäisi nyt näyttää tältä.
Koodin suorittaminen nyt antaa paljon luettavamman viimeisen käynnistysajan.
Nyt kun olemme tyytyväisiä käsikirjoituksen perustoimintoihin, meidän on tallennettava se. Yksinkertaisuuden vuoksi tallenna se seuraavasti:
C: \ Get-LastBootTime.ps1
Siirry nyt ISE: n alaosaan ja toimi seuraavasti:
C: \ Get-LastBootTime.ps1
Loistava! Käsikirjamme toimii odotetusti, mutta komentosarjassa on vielä yksi ongelma. Koodasimme tietokoneen nimen, josta haluamme saada viimeisen käynnistysajan. Koodausarvojen sijasta meidän pitäisi pikemminkin tarjota parametri, jotta kuka tahansa, joka käyttää komentosarjaa, voi valita, mitä tietokonetta ne käyttävät. Voit tehdä tämän siirtymällä komentosarjan yläreunaan ja tekemällä seuraavat toimet.
param (
[Merkkijono] $ TietokoneenNimi
)
Korvaa sitten koodattu paikallinen arvo $ ComputerName-muuttujalla. Käsikirjoituksen pitäisi nyt näyttää tältä:
Tallenna skripti ja siirry sitten takaisin ISE: n alaosaan ja katso komentosarjan ohje.
Ohje C: Get-LastBootTime.ps1
Awesome, joten nyt voimme määrittää tietokoneen nimen, josta haluamme saada viimeisen käynnistysajan uuden ComputerName-parametrin käyttämiseksi. Valitettavasti on vielä muutamia asioita väärin. Ensinnäkin ComputerName-parametri on valinnainen ja toiseksi se on räikein avuksi, jota olen koskaan nähnyt, joten korjaamme ne nopeasti. Jotta ComputerName-parametri olisi pakollinen, muuta parametrilohkon sisältö seuraavaksi.
[Parametri (pakollinen = $ true)] [merkkijono] $ TietokoneenNimi
Paremman ohjetiedoston tekemiseen yleisin tapa on käyttää kommenttipohjaista apua. Tämä tarkoittaa sitä, että lisäämme vain ylimääräisen pitkän kommentin ulospäin.
<#
.SYNOPSIS
Näyttää, milloin tietokone on käynnistynyt.
.KUVAUS
Tämä on WMI-käärintatoiminto, jonka avulla tietokoneesi sai viimeksi käyttöönoton.
.PARAMETER ComputerName
Tietokoneen nimi, jota haluat käyttää komentoa vastaan.
.Esimerkki
Get-LastBootTime -tietokoneen nimi localhost
.LINKKI
www.howtogeek.com
#>
Kun kaikki on tehty, sinun pitäisi päätyä tällaiseen skriptiin.
Mennään nyt ja tutustu uuteen ohjetiedostoomme.
Ahhh, hyvältä! Nyt kun käsikirjamme on valmis, meillä on yksi viimeinen asia: testaus. Tätä varten menen ulos ISE: stä ja pääsen takaisin PowerShell-konsoliin juuri niin, että voimme varmistaa, ettei poikkeamia ole.
Jos aloitat yksinkertaisella linjalla ja vain rakennetaan sen päälle, kuten teimme tässä oppaassa, pääset sen päälle. Se on kaikki tällä kertaa ihmiset, nähdä sinut seuraavan asennuksen Geek School.