15Sep

Geek School: Ensimmäisen Full PowerShell Scriptin kirjoittaminen

Muutama viikko sitten, Geek osoitti, miten voit käyttää komentokehotea löytääksesi, milloin tietokone käynnistettiin viimeisen kerran. Tässä viimeisessä asennuksessa Geek School for PowerShell, aiomme kirjoittaa uudelleenkäytettävän PowerShell komennon tehdä sama asia.

Lue lisää artikkeleista:

  • Opi käyttämään Windowsia PowerShellillä
  • Oppiminen käyttämään PowerMac-työkaluja PowerShellissä
  • Oppiminen PowerShell-objektin käyttämisessä
  • Oppimismuotoilu, suodatus ja vertailu PowerShellissä
  • Opi käyttämään etäisyyttäPowerShell
  • PowerShellin käyttäminen tietokoneen tietojen saantiin
  • PowerShell-kokoelmien käsittely
  • Opi käyttämään PowerShell-työkaluja
  • Opi käyttämään PowerShell-laitetta
  • Learning PowerShell -muuttujat, syöttö ja tulostus

Ensimmäisen komentosarjan kirjoittaminen

Ensin meidän on tehtävälöytää keino saada etsimämme tiedot. Koska olemme tekemisissä hallinnointiin liittyvien tietojen kanssa, meidän on todennäköisesti tarkasteltava WMI: n käyttämistä, jolla on todellakin Win32_OperatingSystem-niminen luokka, jonka avulla voit tarkastella käyttöjärjestelmääsi täydellisiä tietoja, mukaan lukien viimeinen käynnistysvaihe.

Nyt kun tiedämme, mistä löydämme etsimämme tiedot, avaa ISE ja kirjoita seuraava.

Get-WmiObject -Class Win32_OperatingSystem -TietokoneNimi localhost |

Select-Object -Property CSName, LastBootUpTime

Huomautus: Minun joudut jakamaan koodin kahdella rivillä niin, että kaikki sopivat kuvakaappaukseen, mutta voit vapaasti kirjoittaa sen yhdellä rivillä.Jos haluat jakaa sen kahdella rivillä, varmista, että putkimerkki on viimeinen merkki linjalla 1.

Napsauta vihreää "Run Script" -painiketta tai paina näppäimistön F5 näppäintä testataksesi koodia.

WMI-ajat voivat olla hieman salaa. Tällä tarkoitamme, jos katsot LastBootUpTime-ominaisuutta, se kerrotaan 2013-03-19 klo 18:26:21, mutta jostain syystä WMI-kaverit päättivät ketjuttaa kaikki tämän yhdeksi merkkijonoksi. Onneksi meille emme tarvitse huolehtia manuaalisesta jäsentämisestä, koska se on helpompi tapa tehdä se, vaikkakin edistyksellisempi. Sinun on muutettava koodin Select-Object-osa, joka näyttää tältä:

Select-Object -Property CSName, @{ n = "Viimeinen käynnistynyt";

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

Täällä tehdään tuttua omaisuutta nimeltä "Last Booted" ja määritetään, että sen arvon täytyy olla seurausta ToDateTime staattisenmenetelmää nykyisen putkiobjektin LastBootUpTime-ominaisuudella. Sinun koodisi pitäisi nyt näyttää tältä.

Käyttämällä koodia nyt saadaan paljon helpommin luettavissa oleva viimeinen käynnistysaika.

Nyt kun olemme tyytyväisiä skripteemme perustoimintoihin, meidän on tallennettava se. Yksinkertaisuuden vuoksi tallennetaan se seuraavasti:

C: \ Get-LastBootTime.ps1

Vaihda nyt ISE: n alareunaan ja suorita seuraavat:

C: \ Get-LastBootTime.ps1

Suuri! Käsikirjamme toimii odotetulla tavalla, mutta komentosarjassamme on silti yksi ongelma. Me kova koodi on tietokoneen nimi, jonka haluamme saada viimeisen käynnistysajan. Hardcoding-arvojen sijaan pitäisi antaa pikemminkin parametri, jotta komentosarjan käyttäjä voi valita minkä tietokoneen he käsittelevät komentosarjaa. Voit tehdä tämän siirtymällä komentosarjan yläosaan ja tekemällä seuraavat.

-parametri(
[merkkijono] $ Tietokonenimi
)

Sitten korvataan karkeasti koodattu localhost-arvo $ ComputerName -muuttuvalla. Käsikirjoituksesi pitäisi nyt näyttää tältä:

Tallenna komentosarja ja palaa sitten ISE: n alareunaan ja näe käsikirjoituksesi ohje.

auttaa C: \ Get-LastBootTime.ps1

Mahtava, joten voimme nyt määrittää tietokoneen nimen, jolle haluamme viimeisen käynnistyksen ajan uuden ComputerName-parametrin käyttämiseen. Valitettavasti on vielä muutamia asioita väärin. Ensinnäkin ComputerName-parametri on vapaaehtoinen ja toiseksi se on kaikkein rohkein apu, jota olen koskaan nähnyt, joten korjataan nämä asiat nopeasti. Jos haluat tehdä ComputerName -parametrin pakolliseksi, muuta param-lohkon sisältö seuraavaan.

[Parametri( Pakollinen = $ true)] [merkkijono] $ Tietokoneen nimi

Paremman ohjetiedoston luominen on tavallisin tapa käyttää kommentointiin perustuvaa apua. Tämä tarkoittaa, että lisäämme ylimääräisen pitkän kommentin komentorivin yläosaan.

& lt;
. SYNOPSIS
Näyttää viimeisen tietokoneen käynnistyksen.
. DESCRIPTION
Tämä on WMI-käämitystoiminto, jonka avulla tietokoneen viimeinen käynnistys kestää.
. PARAMETER Tietokoneen nimi
Tietokoneen nimi, jota haluat käyttää komentoa vastaan.
. EXAMPLE
Get-LastBootTime -ComputerName localhost
. LINK
www.howtogeek.com
# & gt;

Kun kaikki, mitä on tehty, sinun pitäisi päätyä käsikirjoitukseen.

Käy nyt ja tutustu uusi ohjetiedosto.

Ahhh, upea! Nyt, kun käsikirjamme on valmis, meillä on vielä yksi asia: testaus. Tätä varten aion lähteä ulos ISE: stä ja palata PowerShell-konsoliin vain, jotta voimme varmistaa, että poikkeamia ei ole.

Jos aloitat yksinkertaisella linjalla ja pidätte vain rakennustyön sitä varten, kuten tässä oppaassa teet, saat sen rullan nopeasti. Kaikki tämä tänä aikana ihmiset, näet seuraavassa Geek-koulun asennuksessa.