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.