15Sep

Geek School: Az első Full PowerShell Script írása

click fraud protection

Néhány héttel ezelőtt a The Geek megmutatta, hogyan használhatja a parancssort a számítógép utolsó indításakor. A Geek School of PowerShell utolsó telepítésekor egy újrafelhasználható PowerShell parancsot fogunk írni, hogy ugyanezt tegyük.

Mindenképpen olvassa el az előző cikkekben a sorozatban:

  • Tanulj automatizálása a Windows PowerShell
  • tanulás használja parancsmagjai a PowerShell
  • Learning Hogyan használjuk objektumok PowerShell
  • Learning formázás, szűrése és összehasonlítása a PowerShell
  • megtanulják használni Remoting aPowerShell
  • használata PowerShell Get számítógépes információs
  • Munka gyűjtemények PowerShell
  • Megtanulják, hogyan használjuk a munkahelyteremtés területén PowerShell
  • kaphat a PowerShell
  • Learning PowerShell változók, bemeneti és kimeneti

Writing első Script

Az első dolog, amit meg kell tennie,megtalálja a módját, hogy hozzáférhessen az általunk keresett információkhoz. Mivel van dolgunk vezetői információs, akkor valószínűleg kell megnézzük WMI, ami valóban van egy osztály nevezett Win32_OperatingSystem amely lehetővé teszi, hogy részletes információkat az operációs rendszer, beleértve az utóbbi időben kezdett felfelé.

instagram viewer

Tehát most, hogy tudjuk, hol találhatjuk az általunk keresett információkat, nyissuk meg az ISE-t és írjuk be a következőket.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

Select-Object -property CSName, LastBootUpTime

Megjegyzés: meg kellett osztani a kód két sorba úgy, hogy minden fér bele a képernyőképet, de nyugodtan írja meg egyetlen vonalon. Ha két vonalra osztja, akkor a cső karakter legyen az utolsó sor az 1. sorban.

Most kattintson a zöld "Futtatás parancsfájl" gombra, vagy nyomja meg az F5 billentyűt a teszteléshez.

A WMI-idők egy kicsit rejtélyesek lehetnek. Ez azt jelenti, hogy ha megnézzük a LastBootUpTime tulajdonságot, azt mondjuk 2013.03.19-én 18:26:21-re, de valamilyen oknál fogva a WMI-k úgy döntöttek, hogy mindegyiket egyetlen karaktersorba kapcsolják. Szerencsére számunkra, nem kell aggódnunk a kézzel történő elemzést illetően, mivel könnyebb módja annak, de még fejlettebb. Meg kell változtatnod a kód Select-Object részét, hogy így nézel ki:

Select-Object -Property CSName, @{ n = "Last Booted";

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

Mit csinálunk mi itt teremt az egyéni tulajdonság az úgynevezett „utolsó rendszerindítás”, és meghatározza, hogy az ár-érték kell, hogy legyen az eredménye hívja a ToDateTime statikusmódszer az aktuális csővezeték-objektum LastBootUpTime tulajdonságán. A kód most úgy néz ki, mint ez.

A kód futtatása most sokkal jobban olvasható utolsó bootolási időt eredményez.

Most, hogy elégedettek vagyunk a scriptünk alapvető működésével, meg kell mentenünk. Az egyszerűség kedvéért mentse el a következőket:

C: \ Get-LastBootTime.ps1

Most váltson az ISE alsó felére, és futtassa a következőket:

C: \ Get-LastBootTime.ps1

Nagyszerű!Szkriptünk a várakozásoknak megfelelően működik, de még mindig van egy probléma a forgatókönyvünkkel. Keményen kódoltuk a számítógép nevét, amelyre az utolsó indítási időt szeretnénk elérni. Az értékek hardcoding helyett inkább olyan paramétert kell megadnunk, hogy bárki, aki használja a szkriptet, kiválaszthatja, hogy melyik számítógépen futtatják a szkriptet. Ehhez lépjen a szkript tetejére, és hajtsa végre a következő lépéseket.

param(
[string] $ ComputerName
)

Akkor cserélje ki a kódolt localhost értéket $ SzámítógépNév változó.A szkriptnek így kell kinéznie:

Mentse el a szkriptet, majd menjen vissza az ISE alsó felébe, és nézze meg a parancsfájl segítségét.

súgó C: \ Get-LastBootTime.ps1

Félelmetes, így most megadhatjuk annak a számítógépnek a nevét, amelyre az utolsó számítógépet szeretnénk használni az új ComputerName paraméter használatával. Sajnos még mindig van néhány dolog rosszul. Először is a ComputerName paraméter opcionális, és másodszor, ez a legrondább segítő, amit valaha láttam, ezért gyorsan oldjuk meg ezeket a kérdéseket. A ComputerName paraméter kötelezővé tétele érdekében módosítsa a param blokk tartalmát a következőkre.

[Paraméter( kötelező = $ true)] [string] $ számítógépnév

A jobb súgófájl készítéséhez a leggyakoribb módszer a megjegyzéseken alapuló súgó használata. Ez azt jelenti, hogy csak egy extra hosszú megjegyzést adunk hozzá a szkript tetejéhez.

& lt;
. SYNOPSIS
A legutóbb bemutatja a számítógép indítását.
. DESCRIPTION
Ez egy WMI-csomagolási funkció, amellyel időt nyerhet a számítógépedre.
. PARAMETER ComputerName
A számítógép neve, amelyre a parancsot futtatni szeretné.
. EXAMPLE
Get-LastBootTime -KomputerName localhost
. LINK
www.howtogeek.com
# & gt;

Miután mindez megtörtént, egy ilyen szkriptet kell kinéznie.

Menjünk és nézzük meg az új súgófájlunkat.

Ahhh, remekül néz ki! Most, hogy a szkriptünk befejeződött, még egy dolgunk van: tesztelés. Ehhez fogok kilépni az ISE-ből, és visszamegyek a PowerShell konzolba, hogy megbizonyosodjunk róla, hogy nincsenek rendellenes rendellenességek.

Ha egy egyszerű béléssel indulsz, és csak úgy építesz rá, mint ahogyan ezt az útmutatót, akkor egy pillanatra elkaptuk. Ez az egész ebben az időben emberek, lásd a következő telepítésében Geek Iskola.