Početna » kako da » Geek Škola Pisanje svoj prvi Full PowerShell Skripta

    Geek Škola Pisanje svoj prvi Full PowerShell Skripta

    Prije nekoliko tjedana, Geek vam je pokazao kako možete koristiti naredbeni redak kako biste pronašli kada je vaše računalo pokrenut posljednji put. U ovoj zadnjoj instalaciji Geek škole za PowerShell, napisaćemo PowerShell za višekratnu upotrebu kako bismo učinili istu stvar.

    Svakako pročitajte prethodne članke iz serije:

    • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
    • Učenje korištenja Cmdletova u PowerShell-u
    • Učenje korištenja objekata u programu PowerShell
    • Učenje oblikovanja, filtriranja i uspoređivanja u programu PowerShell
    • Naučite kako koristiti daljinski rad u programu PowerShell
    • Upotreba PowerShell-a za dobivanje informacija o računalu
    • Rad s zbirkama u programu PowerShell
    • Saznajte kako koristiti zadatke u programu PowerShell
    • Saznajte kako proširiti PowerShell
    • Učenje PowerShell varijabli, ulaz i izlaz

    Pisanje prvog skripta

    Prvo što trebamo učiniti je pronaći način da pristupimo informacijama koje tražimo. Budući da se bavimo informacijama o upravljanju, vjerojatno trebamo pogledati pomoću WMI-ja, koji doista ima klasu nazvanu Win32_OperatingSystem koja vam omogućuje da pregledate opširne informacije o vašem operativnom sustavu, uključujući i zadnji put kada se pokrene.

    Tako da sada znamo gdje možemo pronaći informacije koje tražimo, otvoriti ISE i upisati sljedeće.

    Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

    Odaberite-Object -Property CSName, LastBootUpTime

    Napomena: Morao sam podijeliti svoj kôd na dvije linije tako da se sve uklapa u snimku zaslona, ​​ali slobodno ga upišite u jednu liniju. Ako se odlučite podijeliti na dvije linije, provjerite je li znak cijevi posljednji znak na retku 1.

    Kliknite na zelenu tipku "Run Script" ili pritisnite tipku F5 na tipkovnici kako biste testirali kod.

    WMI puta može biti malo zagonetan. Pod tim mislimo ako pogledate LastBootUpTime svojstvo, to kaže da je 2013-03-19 u 18:26:21, ali iz nekog razloga WMI dečki su odlučili sve to spojiti u jedan niz. Srećom za nas, ne moramo se brinuti o ručnom raščlanjivanju niza jer postoji lakši način za to, iako napredniji. Morat ćete promijeniti dio koda za odabir objekta kako bi izgledao ovako:

    Select-Object -Property CSName, @ n = ”Zadnje učitavanje”;

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

    Ono što mi ovdje radimo je kreiranje prilagođenog svojstva nazvanog "Zadnje podizanje" i navodeći da njegova vrijednost mora biti rezultat pozivanja statičke metode ToDateTime na LastBootUpTime svojstvo trenutnog objekta cjevovoda. Vaš bi kôd trebao izgledati ovako.

    Pokretanje koda sada će dati mnogo više čitljivog zadnjeg vremena pokretanja.

    Sada kada smo zadovoljni osnovnom funkcionalnošću naše skripte, moramo je spremiti. Radi jednostavnosti, spremimo je kao sljedeće:

    C: \ Get LastBootTime.ps1

    Sada prebacite na donju polovicu ISE-a i pokrenite sljedeće:

    C: \ Get LastBootTime.ps1

    Sjajno! Naša skripta radi kako se očekuje, no još uvijek postoji jedan problem s našom skriptom. Napisali smo ime računala za koje želimo zadnje vrijeme. Umjesto tvrdih vrijednosti, radije ćemo dati parametar tako da onaj tko koristi skriptu može odabrati na kojem računalu će pokrenuti skriptu. Da biste to učinili, idite na vrh svoje skripte i učinite sljedeće.

    param (
    [String] $ ComputerName
    )

    Zatim zamijenite tvrdo kodiranu vrijednost localhost s $ ComputerName varijablom. Vaša bi skripta trebala izgledati ovako:

    Spremite svoju skriptu, a zatim se vratite na donju polovicu ISE-a i pogledajte pomoć za svoju skriptu.

    pomoć C: Get-LastBootTime.ps1

    Strašan, tako da sada možemo odrediti ime računala koje želimo dobiti zadnje vrijeme pokretanja za korištenje našeg novog parametra ComputerName. Nažalost, još uvijek postoji nekoliko pogrešnih stvari. Prvo, parametar ComputerName nije obavezan, a drugo, to je najružnije što sam ikada vidio, pa ćemo brzo riješiti te probleme. Da bi parametar ComputerName bio obavezan, promijenite sadržaj param bloka na sljedeći.

    [Parametara (Obvezno = $ vrijedi)] [string] $ ComputerName

    Što se tiče izrade bolje datoteke pomoći, najčešći način je pomoć na temelju komentara. To znači da samo dodamo dodatni dugačak komentar vrhu skripte.

    <#
    .SINOPSIS
    Prikazuje kada je računalo pokrenuto.
    .OPIS
    To je WMI funkcija omotača da biste dobili vrijeme kada je vaše računalo zadnji put pokrenuto.
    .PARAMETER Naziv računala
    Naziv računala na kojem želite pokrenuti naredbu.
    .PRIMJER
    Get-LastBootTime -ComputerName localhost
    .VEZA
    www.howtogeek.com
    #>

    Nakon što je sve to učinjeno, trebali biste završiti sa skriptom koja izgleda ovako.

    Idemo sada pogledati našu novu datoteku za pomoć.

    Ahhh, izgledaš sjajno! Sada kada je naša skripta potpuna, imamo još jednu stvar: testiranje. Zbog toga ću izaći iz ISE-a i vratiti se natrag u PowerShell konzolu samo da bismo bili sigurni da nema nepravilnosti.

    Ako počnete s jednostavnom linijom i samo nastavite graditi na njoj kao što smo to učinili u ovom vodiču, u najkraćem ćete roku uspjeti. To je sve za ovo vrijeme, vidimo se u sljedećoj instalaciji Geek škole.