If-Koubou

Geek School: Ensimmäisen Full PowerShell Scriptin kirjoittaminen

Geek School: Ensimmäisen Full PowerShell Scriptin kirjoittaminen (Miten)

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

Muista lukea sarjan aiemmat artikkelit:

  • Opi käyttämään automaattista Windowsia PowerShellillä
  • Learning käyttämään Cmdlets PowerShellissä
  • Oppiminen esineiden käyttämisessä PowerShellissä
  • Oppimisen muotoilu, suodatus ja vertailu PowerShellissä
  • Opi käyttämään etäisyyttä PowerShellissä
  • PowerShellin käyttäminen tietokoneen tietojen saantiin
  • PowerShellin kokoelmien käsittely
  • Opi käyttämään PowerShellissä tehtäviä töitä
  • Opi käyttämään PowerShellia
  • Learning PowerShell -muuttujat, syöttö ja tulostus

Ensimmäisen komentosarjan kirjoittaminen

Ensinnäkin meidän on löydettävä tapa saada haluamamme 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 koskevia tietoja, mukaan lukien viimeinen käynnistysvaihe.

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

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

Select-Object -Property CSName, LastBootUpTime

Huomaa: Minun jouduin jakamaan koodi kahdella rivillä niin, että kaikki sopivat kuvakaappaukseen, mutta voit vapaasti kirjoittaa sen yhdellä rivillä. Jos haluat jakaa sen kahteen riviin, varmista, että putkimerkki on viimeinen merkki linjalla 1.

Napsauta sitten vihreää "Run Script" -painiketta tai paina F5-näppäintä testata koodia.

WMI-ajat voivat olla hieman salaa. Tarkoitamme, että katsotko LastBootUpTime-ominaisuutta, se kertoo 2013-03-19 klo 18:26:21, mutta jostain syystä WMI-kaverit päättivät yhdistää kaiken yhteen 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)

Mitä täällä teemme, luodaan mukautettu omaisuus nimeltä "Last Booted" ja määritetään, että sen arvon täytyy olla seurausta kutsumasta ToDateTime staattista menetelmää nykyisen putkiobjektin LastBootUpTime-ominaisuudelle. Sinun koodisi pitäisi nyt näyttää tältä.

Nyt koodin suorittaminen tuottaa paljon helpommin lukea viimeisen käynnistyksen ajan.

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

C: \ Get-LastBootTime.ps1

Siirry nyt ISE: n alareunaan ja suorita seuraavat:

C: \ Get-LastBootTime.ps1

Loistava! 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.

param (
[Merkkijono] $ TietokoneenNimi
)

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

Tallenna käsikirjoitus ja palaa sitten ISE: n alareunaan ja tutustu käsikirjoitustasi.

Auta C: \ Get-LastBootTime.ps1

Mahtavaa, joten nyt voimme määrittää tietokoneen nimen, jonka haluamme saada 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] $ TietokoneenNimi

Mitä tulee parempaan ohjetiedostoon, tavallisin tapa on käyttää kommenttipohjaista apua. Tämä tarkoittaa, että lisäämme ylimääräisen pitkän kommentin komentorivin yläosaan.

<#
.SYNOPSIS
Näyttää viimeisen tietokoneen käynnistymisen.
.KUVAUS
Tämä on WMI-käämitystoiminto, jonka avulla voit saada tietokoneesi viimeisen käynnistyksen.
.PARAMETER Tietokoneenimi
Tietokoneen nimi, jota haluat käyttää komennolla vastaan.
.esimerkki
Get-LastBootTime -KomputerName localhost
.LINKKI
www.howtogeek.com
#>

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

Käy nyt ja tutustu uusi ohjetiedosto.

Ahhh, hyvältä! Nyt, kun käsikirjamme on valmis, meillä on vielä yksi asia: testaus. Tämän vuoksi aion lähteä ulos ISE: stä ja palata PowerShell-konsoliin juuri niin, että voimme varmistaa, että poikkeamia ei ole.

Jos aloitat yksinkertaisella linjalla ja pidätte vain kiinni siitä, kuten teimme tässä oppaassa, saat sen rullan nopeasti. Kaikki tämä tänä aikana ihmiset, näet seuraavassa Geek-koulun asennuksessa.